1

我有 100 个按钮(从 button000 到 button 999)。有什么方法可以为所有这些设置 setOnClick 吗?因为所有按钮都具有相同的功能。提前致谢。

4

8 回答 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 回答