Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在一个侦听器上设置4个按钮?_Java_Android_Button_Onclicklistener - Fatal编程技术网

Java 如何在一个侦听器上设置4个按钮?

Java 如何在一个侦听器上设置4个按钮?,java,android,button,onclicklistener,Java,Android,Button,Onclicklistener,这是一个简单的方法,但我不知道代码,所以我的意思是这样的 button1 = (Button)findViewById(R.id.b1); button2 = (Button)findViewById(R.id.b2); button3 = (Button)findViewById(R.id.b3); button4 = (Button)findViewById(R.id.b4); //button1-button4.setOnClickList

这是一个简单的方法,但我不知道代码,所以我的意思是这样的

     button1 = (Button)findViewById(R.id.b1);
     button2 = (Button)findViewById(R.id.b2);
     button3 = (Button)findViewById(R.id.b3);
     button4 = (Button)findViewById(R.id.b4);

    //button1-button4.setOnClickListener(new View.OnClickListener() {

          public void onClick(View Button1-4){
            {
             //Do same method for button1-4
            }
          }
        });

     button5 = (Button)findViewById(R.id.b5);
     button6 = (Button)findViewById(R.id.b6);
     button7 = (Button)findViewById(R.id.b7);
     button8 = (Button)findViewById(R.id.b8);

    //button5-button8.setOnClickListener(new View.OnClickListener() {

          public void onClick(View Button5-8){
            {
             //Do same method for button5-8
            }
          }
        });

     button9  = (Button)findViewById(R.id.b9);
     button10 = (Button)findViewById(R.id.b10);
     button11 = (Button)findViewById(R.id.b11);
     button12 = (Button)findViewById(R.id.b12);

    //button5-button8.setOnClickListener(new View.OnClickListener() {

          public void onClick(View Button9-12){
            {
             //Do same method for button9-12
            }
          }
        });
所以我在我的项目上有12个按钮,我把它们分为3组(布局),每组有4个按钮,我的意思是每组中的4个按钮做相同的事情


有人能帮我提供一些示例代码吗?谢谢

这是一个模板。希望这有帮助

public class MyActivity extends Activity implements View.OnClickListener {

Button button1, button2, button3;

@Override
public void onCreate(Bundle bundle) {
    super.onCreate();

    ...

    button1 = (Button) findViewById(R.id.button1);
    button2 = (Button) findViewById(R.id.button2);
    button3 = (Button) findViewById(R.id.button3);

    button1.setOnClickListener(this);
    button2.setOnClickListener(this);
    button3.setOnClickListener(this);
}

@Override
public void onClick(View v) {
   switch(v.getId()) {
       case R.id.button1:
       // do stuff; You can called your method from here also.
       break;
       case R.id.button2:
       // do stuff;
       break;
   ...
 }
}
您还可以使用android:onclick属性在布局xml中设置它

android:onClick="onClick"
然后在活动类中添加onClick方法

public void onClick(View v) {
 //Write your code here
 if(v.getId==R.id.button1 || v.getId==R.id.button2 || v.getId==R.id.button3 ||v.getId==R.id.button4){
  // Do stuff
 }
}

试试这个我希望你的问题能解决

 public class MyActivity extends Activity implements View.OnClickListener {

 Button button1, button2, button3,button4;

  @Override
public void onCreate(Bundle bundle) {
super.onCreate();

...

button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button3 = (Button) findViewById(R.id.button3);
button4 = (Button) findViewById(R.id.button4);

button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
button4.setOnClickListener(this);
}

@Override
  public void onClick(View v) {
   if(v.getId==R.id.button1 || v.getId==R.id.button2 || v.getId==R.id.button3 ||v.getId==R.id.button4){
 // Do somthin what you want
}

 }
} 

这本身就应该做到这一点

你想让不同的按钮做相同的事情吗?@nomad是的,布局中的4个按钮做相同的事情,其中有一个错误,说“getId无法解析或不是字段”,你从哪里得到这个错误?v、 getId显示此异常?在此行中,如果(v.getId==R.id.button1 | | v.getId==R.id.button2 | | v.getId==R.id.button3 | | v.getId==R.id.button4)等使用方法v.getId按钮5-12,则应使用layout.xml文件中使用的确切按钮名称。其中有一些错误,称“getId无法解析或不是字段”检查onClick(视图v)我的v是这个v,,v是视图的对象。检查您的click Objects getId()。没有括号是没有用的
 public class MyActivity extends Activity implements View.OnClickListener {

 Button button1, button2, button3,button4;

  @Override
public void onCreate(Bundle bundle) {
super.onCreate();

...

button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button3 = (Button) findViewById(R.id.button3);
button4 = (Button) findViewById(R.id.button4);

button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
button4.setOnClickListener(this);
}

@Override
  public void onClick(View v) {
   if(v.getId==R.id.button1 || v.getId==R.id.button2 || v.getId==R.id.button3 ||v.getId==R.id.button4){
 // Do somthin what you want
}

 }
} 
 public class MyActivity extends Activity implements View.OnClickListener {

Button button1, button2, button3;

@Override
public void onCreate(Bundle bundle) {
super.onCreate();

...

button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button3 = (Button) findViewById(R.id.button3);

}

@Override
public void onClick(View v) {
  switch(v.getId()) {
   case R.id.button1:
   // do stuff; You can called your method from here also.
   break;
   case R.id.button2:
   // do stuff;
   break;
 ...
}
}