按钮数组onclicklistener

Bob*_*bby 4 android android-layout

我在xml中设置了10个按钮并添加到主要活动中.我只显示2.所有按钮只更改变量和按钮颜色.是否有方法将所有按钮分组到单个onclicklistener并使用开关检查按下了哪个按钮.使用单独的onclicklistener似乎分配腰部空间.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    f1 =(Button) findViewById(R.id.f1);
    f2 =(Button) findViewById(R.id.f2);

    f1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            clearbutton();
            f1.setBackgroundColor(Color.RED);
            intbtnSelect=0; 
        }
    });

    f2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            clearbutton();
            f2.setBackgroundColor(Color.RED);
            intbtnSelect=1;
        }
    });
Run Code Online (Sandbox Code Playgroud)

Bla*_*elt 7

你可以实现OnClickListener你的 Activity.例如

public class MyActivity extends Activity implements View.OnClickListener {       
     @Override
     protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        f1 =(Button) findViewById(R.id.f1);
        f1.setOnClickListener(this);

        f2 =(Button) findViewById(R.id.f2);
        f2.setOnClickListener(this);
     }
}
Run Code Online (Sandbox Code Playgroud)

你必须实现onClick方法并切换view.getId():

@Override
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.f1:
        // your code here
        break;
    case R.id.f2:
        // your code here 
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)