setOnClick为100个按钮

时间:2012-05-11 10:57:55

标签: android button onclick buttonclick onclicklistener

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

8 个答案:

答案 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();
         }