android - 按钮数组onclicklistener

标签 android android-layout

我在 xml 中设置了 10 个按钮并添加到主 Activity 中。我只显示 2 个。所有按钮只更改一个变量和按钮颜色。有没有一种方法可以将所有按钮分组到一个 onclicklistener 并使用 switch 检查按下了哪个按钮。使用单独的 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;
        }
    });

最佳答案

您可以将 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);
     }
}

它们你必须实现 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;
    }
}

关于android - 按钮数组onclicklistener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17746840/

相关文章:

java - 使用 Android Async Http 处理成功请求返回

android - 如何在我的 meteor 项目中更新 cordova-plugin-device?

c# - Android 单声道 : Splash screen tutorial c#

android - 如何使用抗锯齿有效地调整图像大小?

android - weightSum 不能在 android 中正确分割屏幕

android - 如何在范围搜索栏中的两个拇指之间设置渐变色背景?

使用 livedata 进行 Android View 模型单元测试

Android:在启动的 Activity 上设置窗口背景

android - 使用 XML 布局作为 View 子类的 View ?

android - 我应该为每个屏幕创建一个 Activity 吗?