如何一次性操作多个控件?给多个控件声明、赋值、监听?

次声的爱 2018-10-31 11:50:56
xml中有多个控件
在代码中要定义bt1、bt2、bt3......btn;
声明控件:
bt1 = findviewbyid(R.id.bt1Id):
bt2 = findviewbyid(R.id.bt2Id):
bt3 = findviewbyid(R.id.bt3Id):
...
btn = findviewbyid(R.id.bt4Id):

给控件赋值:
bt1.setText(值1);
bt2.setText(值2);
bt3.setText(值3);
...
btn.setText(值n);

设置监听。。。
这样弄好蛋疼啊。想通过循环一次性声明控件、赋值、监听,网上查:
关于初始化有说把bt的id放到一个int数组中,然后批量初始化。但是我n个bt也要写n次到数组中啊,因为每个bt的id不一样啊,可不可以循环添加到数组中,bt的id是bt1~btn,但是想不出该怎么做。
...全文
130 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
YXTS122 2018-11-05
  • 打赏
  • 举报
回复
对啊,代码能优化尽量优化呀。。。。。。。。。。。。。。。
次声的爱 2018-11-04
  • 打赏
  • 举报
回复
引用 1 楼 jklwan 的回复:

int n = 100;
for (int i = 1; i <= n; i ++) {
int id = getResources().getIdentifier("bt" + i, "id", getPackageName());
TextView view = findViewById(id);
if (view != null){
view.setText("item"+i);
}
}

id为bt1到bt100,设置内容为item1到item100

谢谢大神,完美的解决了我的问题,赞
漫慢求知路 2018-11-01
  • 打赏
  • 举报
回复
给btn赋值最好直接在String.xml中写内容,在布局文件中引用;设置监听的话可以一起,如下:
start = (Button) findViewById(R.id.button1);
stop = (Button) findViewById(R.id.button2);
start.setOnClickListener(mylistener );
stop.setOnClickListener(mylistener );
View.OnClickListener mylistener = new View.OnClickListener() {

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
Log.d(TAG, "Start to recorder video\n");
start_recorde();
break;
case R.id.button2:
Log.d(TAG, "Stop to recorder video\n");
stop_recorde();
break;
default:
break;
}
}
};
雕·不懒惰 2018-11-01
  • 打赏
  • 举报
回复
引用 2 楼 qq_33451426 的回复:
ButterKnife啊,所有控件都不用手动声明,赋值监听声明的都是一键生成

没看清问题
雕·不懒惰 2018-11-01
  • 打赏
  • 举报
回复
ButterKnife啊,所有控件都不用手动声明,赋值监听声明的都是一键生成
jklwan 2018-11-01
  • 打赏
  • 举报
回复

         int n = 100;
        for (int i = 1; i <= n; i ++) {
            int id = getResources().getIdentifier("bt" + i, "id", getPackageName());
            TextView view = findViewById(id);
            if (view != null){
                view.setText("item"+i);
            }
        }
id为bt1到bt100,设置内容为item1到item100

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧