android studio 轮询修改对象属性(修改多个textview的text)

android studio版本:23.3.1

例程名称:loopsettextviewtext

这几天在帮一个朋友做个数独小游戏,如下图:

要可以玩自定义游戏,点击清空后,所以数字要清除。

要把所有的内容清空,一共有81个textview,要是一条条写可累死了,于是想到了轮询访问的方法。这个方法应用场景可能不多,但要是用起来不会也麻烦。

下面是解决方法:

1.定义一个数组:

        textViews = new TextView[3];textViews[0]=findViewById(R.id.textView1);textViews[1]=findViewById(R.id.textView2);textViews[2]=findViewById(R.id.textView3);

2.定义按钮点击事件:

public void chaneText(View view) {for (TextView textView : textViews) {textView.setText("2");}}

此事件要在xml里指定:

 <Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="107dp"android:layout_marginTop="18dp"android:text="Button"android:onClick="chaneText"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/textView2" />

全部代码:

xml:activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/main"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><TextViewandroid:id="@+id/textView3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World!"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.347"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:layout_constraintVertical_bias="0.355" /><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="126dp"android:layout_marginTop="213dp"android:text="TextView"android:textAlignment="center"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><TextViewandroid:id="@+id/textView2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="126dp"android:layout_marginTop="24dp"android:text="TextView"android:textAlignment="center"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/textView3" /><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginStart="107dp"android:layout_marginTop="18dp"android:text="Button"android:onClick="chaneText"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/textView2" /></androidx.constraintlayout.widget.ConstraintLayout>

mainactivity.java

package com.shudu.loopsettextviewtext;import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;public class MainActivity extends AppCompatActivity {private TextView[] textViews;private TextView textview1;private TextView textview2;private TextView textview3;private Button button1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);EdgeToEdge.enable(this);setContentView(R.layout.activity_main);ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);return insets;});textview1 = (TextView) findViewById(R.id.textView1);textview2 = (TextView) findViewById(R.id.textView2);textview3 = (TextView) findViewById(R.id.textView3);button1 = (Button) findViewById(R.id.button1);textViews = new TextView[3];textViews[0]=findViewById(R.id.textView1);textViews[1]=findViewById(R.id.textView2);textViews[2]=findViewById(R.id.textView3);}public void chaneText(View view) {for (TextView textView : textViews) {textView.setText("搞定");}}
}

结果示意:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/60471.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PIC16F648A-I/SS 8位微控制器 -MCU 微芯 PIC16F648AT-I/SS 8位微控制器 -MCU 完全可替代PIC16F648

在这种情况下&#xff0c;微芯PIC16F627A-I/SS可以被视为是微芯PIC16F648AT-I/SS的一个兼容替代品。它们具有相似的功能和特性&#xff0c;包括相同的8位MCU架构、相似的存储器大小和RAM大小&#xff0c;以及相似的输入/输出端口数量。因此&#xff0c;如果您需要替换PIC16F648…

Linux(CentOS)项目总结(前后端分离)

项目情况&#xff1a; 前端开发&#xff1a;vue3 vite ts VSCode后端开发&#xff1a;JDK17 Spring Boot 3 Mybatis Maven IDEA数据库&#xff1a;MySQL8.4.3 SQLyog代码管理&#xff1a;Git虚拟环境&#xff1a;VMware远程登录&#xff1a;FinalShell服务器操作系统&…

C# 选择文件夹路径

通过C#代码&#xff0c;调出windows风格的文件夹选择框。提供界面来选择指定文件夹&#xff0c;并将文件夹完整路径以字符串形式返回。 示例&#xff1a; 代码&#xff1a; #region 选择指定文件夹 string folderPath ""; FolderBrowserDialog folderBrowserDialo…

容器docker的ulimit

Ulimit 在linux里ulimit命令可以对shell生成的进程的资源进行限制。 常用的ulimit限制 打开文件句柄数core文件大小设置进程能够消耗的虚拟内存设置用户能够打开的进程数目 不太常用的ulimit限制 设置数据段的最大值.单位:kbytes 设置创建文件的最大值.单位:blocks 设置在…

unity3d————协程原理讲解

1.协程的本质 协程可以分成两部分1.协程函数本体 2.协程调度器 协程本体就是一个能够中间暂停返回的函数 协程调度器是Unity内部实现的&#xff0c;会在对应的时机帮助我们继续执行协程函数 Unity只实现了协程调度部分协程的本体本质上就是一个 C#的迭代器方法 2.协程本体是…

丹摩征文活动|CogVideoX-2b:从0到1,轻松完成安装与部署!

丹摩征文活动 | CogVideoX-2b&#xff1a;从0到1&#xff0c;轻松完成安装与部署&#xff01; CogVideoX 介绍 CogVideoX的问世&#xff0c;标志着视频制作技术迈入了一个全新的时代。它不仅打破了传统视频制作在效率与质量之间的平衡难题&#xff0c;还通过其先进的3D变分自…

vite构建的react程序放置图片

在 Vite 中&#xff0c;将图片放置在 public 文件夹中可以直接使用相对路径&#xff08;如 /logo.png&#xff09;的原因主要与 Vite 的构建和资源处理方式有关。以下是详细的解释&#xff1a; 1. 公共访问性 public 文件夹中的文件在构建过程中不会被 Vite 处理或哈希化。这…

大模型拒绝采样

2402.10038 (arxiv.org) 对每一个提示词xi生成k个响应&#xff0c;然后从k个响应中选择2个响应对&#xff08;yil, yij&#xff09;&#xff0c;计算两者的回报&#xff08;reward&#xff09;差值&#xff0c;如果差值大于阈值η&#xff08;超参数&#xff09;&#xff0c;就…

知识库搭建|员工培训的效率利器

在企业的快速发展过程中&#xff0c;知识库的搭建成为了提升员工培训效率的关键一环。一个高效的知识库不仅能够为员工提供便捷的学习资源&#xff0c;还能促进知识的持续积累和传承。本文将探讨如何借助知识库工具&#xff0c;来提升员工培训的效率。 一、知识库在员工培训中…

OneRestore: A Universal Restoration Framework for Composite Degradation 论文阅读笔记

这是武汉大学一作单位的一篇发表在ECCV2024上的论文&#xff0c;文章代码开源&#xff0c;文章首页图如下所示&#xff0c;做混合图像干扰去除&#xff0c;还能分别去除&#xff0c;看起来很牛逼。文章是少见的做混合图像干扰去除的&#xff0c;不过可惜只包含了3种degradation…

C#程序开发,检测当前电脑已经安装的软件目录

在Windows中使用C#做软件开发&#xff0c;有时候需要获取当前系统中已安装的软件及其版本号&#xff0c;接下来就简单介绍一下&#xff0c;如何通过C#获取来实现。 1、通过注册表 public List<PcSoftinfo> GetAllInstalledSoftware(string name) {var keys new Regist…

C++ 23的格式化输出

C23 引入了一些新的功能和改进&#xff0c;其中与格式化输出相关的主要变化是对 <format> 库&#xff08;也称为 C20 的标准库格式化功能&#xff09;的进一步支持和可能的增强。C20 已经引入了 <format> 库&#xff0c;提供了一个强大的、类型安全的字符串格式化功…

系统架构设计师论文:论系统安全架构设计及其应用

试题二:论系统安全架构设计及其应用 信息安全的特征是为了保证信息的机密性、完整性、可用性、可控性和不可抵赖性。信息系统的安全保障是以风险和策略为基础,在信息系统的整个生命周期中提供包括技术、管理、人员和工程过程的整体安全,在信息系统中保障信息的这些安全特征…

2024最新版JavaScript逆向爬虫教程-------基础篇之Proxy与Reflect详解

目录 一、监听对象的操作二、Proxy基本使用2.1 创建空代理2.2 定义捕获器2.2.1 Proxy的set和get捕获器2.2.2 Proxy(handler)的13个捕获器 三、Reflect的作用3.1 Reflect的使用3.2 Reflect其余方法(9个)3.3 Proxy与Reflect中的receiver参数3.4 Reflect中的construct方法 ECMAScr…

如何选择CMS网站管理系统来创建网站呢?

在网站规划中&#xff0c;选择一个合适的CMS&#xff08;内容管理系统&#xff09;尤其重要。CMS是一种用于制作、编辑和管理网站内容的建站工具&#xff0c;它能降低建站的难度、节省建站的时间、提高网站创建的效率和质量。 当然、想提高网站创建的质量&#xff0c;还是得选对…

ES5 和 ES6 数组的操作方法

在 JavaScript 中&#xff0c;数组的操作方法非常丰富&#xff0c;包括 ES5 和 ES6 中引入的各种方法。以下是对这些数组方法的详细介绍&#xff0c;分为 ES5 和 ES6。 目录 一、ES5 数组方法 1. 创建数组 2. 数组增加元素 3. 数组删除元素 4. 查找元素 5. 遍历数组 6.…

鸿蒙next版开发:订阅应用事件(ArkTS)

在HarmonyOS 5.0中&#xff0c;ArkTS提供了强大的应用事件订阅机制&#xff0c;允许开发者订阅和处理系统或应用级别的事件。这一功能对于监控应用行为、优化用户体验和进行性能分析至关重要。本文将详细介绍如何在ArkTS中订阅应用事件&#xff0c;并提供示例代码进行说明。 应…

【juc】AbstractQueuedSynchronized为什么采用双向链表

目录 1. 说明2. 双向链表的特性2.1 双向指针2.2 高效操作2.3 支持双向遍历 3. AQS的设计需求3.1 管理等待线程3.2 高效传播状态信息3.3 支持异常处理3.4 简化自旋竞争锁的逻辑 4. 单向链表的局限性4.1 遍历方向受限4.2 节点删除操作复杂4.3 状态信息传播不便 1. 说明 1.Abstra…

抽象工厂模式详解

1. 引言 1.1 设计模式概述 设计模式&#xff08;Design Patterns&#xff09;是软件开发中解决常见问题的一种最佳实践。它们通过总结经验&#xff0c;提供了一套被验证有效的代码结构和设计原则&#xff0c;帮助开发者提高代码的可维护性、可重用性和可扩展性。 设计模式主…

文献解读-DNAscope: High accuracy small variant calling using machine learning

关键词&#xff1a;基准与方法研究&#xff1b;基因测序&#xff1b;变异检测&#xff1b; 文献简介 标题&#xff08;英文&#xff09;&#xff1a;DNAscope: High accuracy small variant calling using machine learning标题&#xff08;中文&#xff09;&#xff1a;DNAsc…