我有 100 个按钮(从 button000 到 button 999)。有什么方法可以为所有这些设置 setOnClick 吗?因为所有按钮都具有相同的功能。提前致谢。
问问题
779 次
8 回答
1
小伙伴试试这个方法
import android.view.View.OnClickListener;
public class MyActivity extends Activity implements OnClickListener {
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button buttonA = (Button) findViewById(R.id.buttonA);
buttonA.setOnClickListener(this);
Button buttonB = (Button) findViewById(R.id.buttonB);
buttonB.setOnClickListener(this);
}
//etc... etc...
public void onClick(View v) {
switch (v.getId()) {
case R.id.buttonA:
// do something
break;
case R.id.buttonB:
// do something else
break;
}
}
于 2012-05-11T11:00:41.443 回答
1
如果您的按钮在布局内,那么就这样做。
int childcount = ll.getChildCount();
for (int i=0; i < childcount; i++){
View v = ll.getChildAt(i);
v.setOnCLickListener(this);
}
于 2012-05-11T11:01:22.907 回答
1
现在我可以说最简单的
使用方式 button000.setOnclicklistener(this);
:
:
button999.setOnclicklistener(this);
并在当前类中实现 Onclicklistener ....
于 2012-05-11T11:01:49.407 回答
1
如果您确定这是您的应用程序创建 1000 个按钮的最佳方式,那么它将是这样的:
Button [] my_button=new Button[1000];
LinearLayout ll=(LinearLayout)findViewById(R.id.mylayout);
for (int i=0;i<1000;i++){
my_button[i]=new Button(this);
my_button[i].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
my_button[i].setText("button "+i);
ll.addView(my_button[i]);
my_button[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
////click event
}
});
}
于 2012-05-11T11:07:29.667 回答
0
只需将按钮添加到数组中,然后循环按钮,然后在侦听器上调用以下代码块:
for (int i=0; i < buttonArray.length; ++i){
buttonArray[i].onClick(this);
}
于 2012-05-11T11:04:02.533 回答
0
有两种方法,一种是您可以通过onClick方法在xml布局文件中设置onClick,您可以定义方法,单击按钮时应调用该方法。当您在 xml 中定义按钮时,此方法是合适的。
如果您在 Activity 中添加按钮,并且如果您在循环中添加,那么您可以这样做
for(int i=0; i<100; i++)
{
//Create and Add button
btn.setOnClickListener(new OnClickListener()
{
public void onClick(View view)
{
//Operations
}
});
}
于 2012-05-11T11:07:09.497 回答
0
如果所有按钮都具有完全相同的功能,那么您可以简单地使用
private OnClickListener mListenr=new OnClickListener(
@Override
public void onClick(View v) {
//Whatever you want
}
for(int i=0; i<100; i++)
{
mButton[i].setOnClickListener(mListenr);
}
你可以参考这个来查看实现监听器的方法。
于 2012-05-11T11:44:49.153 回答
0
动态制作按钮的最佳方法
Integer[] button_Ids = {R.id.btn000,R.id.btn001...............,R.id.btn999};
for(int i=0;i<100;i++)
{
Button btn = (Button)findViewById(button_ids[i]);
btn.setOnClickListner(this);
}
@Override
public void onClick(View v)
{
Toast.make(getApplicationContext,"Hello",1000).show();
}
于 2012-05-11T12:28:18.983 回答