我有100个按钮(从button000到按钮999)。是否有任何方法可以为所有这些设置setOnClick?因为所有按钮都具有相同的功能。 提前致谢。
答案 0 :(得分:1)
Buddy尝试这种方式
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;
}
}
答案 1 :(得分:1)
如果您的按钮位于布局内,请执行此操作。
int childcount = ll.getChildCount();
for (int i=0; i < childcount; i++){
View v = ll.getChildAt(i);
v.setOnCLickListener(this);
}
答案 2 :(得分:1)
现在我可以说最简单的方法 使用button000.setOnclicklistener(this);
:
:
button999.setOnclicklistener(this);
并在当前类中实现Onclicklistener ....
答案 3 :(得分: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
}
});
}
答案 4 :(得分:0)
只需在数组中添加按钮即可 只需循环按钮,然后在监听器上调用以下代码块:
for (int i=0; i < buttonArray.length; ++i){
buttonArray[i].onClick(this);
}
答案 5 :(得分:0)
有两种方法可以设置onClick在xml布局文件中通过onClick方法可以定义方法,应该在单击按钮时调用。在xml中定义按钮时,此方法是合适的。
如果要在“活动”中添加按钮,并且如果要在循环中添加,则可以执行
for(int i=0; i<100; i++)
{
//Create and Add button
btn.setOnClickListener(new OnClickListener()
{
public void onClick(View view)
{
//Operations
}
});
}
答案 6 :(得分: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);
}
您可以参考this查看实现侦听器的方法。
答案 7 :(得分: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();
}