android怎么用for循环给多个button按钮赋相同的值

2024-11-29 16:25:08
推荐回答(5个)
回答1:

Android_013_利用for循环创建100个Button控件并给其添加监听器

  有些时候, 在一个Activity中可能会需要大量的类型相同的控件, 比如果需要显示100 按钮, 难道我们真的就要布局文件中写100个按钮的代码吗?
其实可以在java 源文件中利用for 循环就可以一次创建100 个按钮了.

1. 先在布局文件中添加一个标签, 让屏幕可以显示更多的内容.
中再添加一个标签,
并这个标签设置一个ID.

布局文件main.xml的代码如下:


android:scrollbars="vertical"
android:fadingEdge="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:id="@+id/linearLayout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>




在java源文件中利用for循环来创建100个按钮, 代码如下:
package com.shy;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;

publicclass ButtonsActivity extends Activity
{
private LinearLayout linearLayout;
@Override
publicvoid onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//利用LinearLayout控件的id获得此控件的对象
linearLayout = (LinearLayout)findViewById(R.id.linearLayout);

/*
* 利用一个for循环, 向LinearLayout中添加100个按钮
*/
for(int i=1; i<=100;i++)
{
//创建一个新的Button对象
Button btnLesson =new Button(this);
//设置对象的id
btnLesson.setId(i);
//设置对象显示的值
btnLesson.setText("Lesson"+i);
//给按钮添加监听事件
btnLesson.setOnClickListener(new btnListener(btnLesson));
//将Button对象添加到LinearLayout中
linearLayout.addView(btnLesson);
}
}

/*
* 创建一个按钮监听器类, 作用是点击按钮后改变按钮的名字
*/
class btnListener implements OnClickListener
{
//定义一个 Button 类型的变量
private Button btn;

/*
* 一个构造方法, 将Button对象做为参数
*/
private btnListener(Button btn)
{
this.btn = btn;//将引用变量传递给实体变量
}
publicvoid onClick(View v)
{
btn.setText("Welcome!");//改变按钮的名字
}
}
}

回答2:

首先要得到第个Button,才能对其赋值。
示例代码:
1.获取所有Button 并放到一个list中
List

回答3:

如果你要用for循环的话就不能按照你的这个方法来做。需要在代码里面用循环new
button控件。
如下:
先建立一个button的控件数组:buttona
=
new
button[bubble_num];
for
(int
i
=
0;
i
<
bubble_num;
i++){
minfo
=
new
relativelayout(this);
button
bt
=
new
button
(this);
buttona
[i]
=
bt;
relativelayout.layoutparams
btparams
=
new
relativelayout.layoutparams
(80,30);
//button的宽高
btparams
.leftmargin=20+
19*i;
//定位
btparams
.topmargin=16
+
10*i;
//定位
minfo.addview(bt,
btparams
);
}
你用for循环按照上面来加button控件应该是行的通的。
设置监听:
for
(int
i
=
0;
i
评论
0
0
加载更多

回答4:

在android里面,button id是有一个具体数字的,在R.java里面可以看到。你可以定义一个数组把这些ID存储起来,直接循环取出来赋给findViewById就可以了。

回答5:

Button btn[25];
for(int i = 0 ; i < 25; i++){

   btn[i] = new Button(this);
   btn[i].setId(i+100); //ID从100开始吧
   btn[i].setOnClickListener(myClickListener);
}