java - Android中的setOnClickListener()

标签 java android android-studio button onclick

<分区>

如果屏幕 (UI) 中有这么多按钮并且需要执行单独的功能,对于这种情况,我们可以为每个按钮使用 setOnClickListner 或者什么是处理这个问题的优化方法?

最佳答案

我通常会按照以下方式做一些事情:

public class Menu extends AppCompatActivity {

Private Button button1, button2, button3, button4, button5;

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


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

        Button[] buttons = new Button[] {button1, button2, button3, button4, button5};
        final String[] functions= new String[] {"options", "exit", "credits", "more", "pictures"};
        for (int i = 0; i < buttons.length; i++) {
            final String function = functions[i].toString();
            buttons[i].setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    StartIntent(function);
                }
            });
        }
    }

    private StartIntent (String function){
        Intent i;

        switch (function) {
            case options:
                i = new Intent(this, OptionsActivity.class);
                break;
            case options:
                i = new Intent(this, ExitActivity.class);
                break;
            case options:
                i = new Intent(this, CreditsActivity.class);
                break;
            case options:
                i = new Intent(this, MoreActivity.class);
                break;
            case options:
                i = new Intent(this, PicturesActivity.class);
                break;
            default:
                Log.e("StartIntent", "invalid function");
                return;
        }

        startActivity(i);
    }
}

这将根据您单击的按钮打开不同的 Intent ,但这实际上取决于您的情况。

关于java - Android中的setOnClickListener(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36949792/

相关文章:

android - 无法解析com.github.navasmdc:MaterialDesign:1.5

java - 循环中的条件条件

java - 固定长度 64 字节 EC P-256 带有 JCE 的签名

android - 关闭声音效果

android - 将视频从 Android/IOS 上传到 Node 服务器时出现服务器超时错误

git - 初始提交失败的 android studio。无法阅读

android - 为什么gradle错误地覆盖了AndroidManifest.xml?

java - Hibernate:一次删除所有具有关联的实体

java - 在 Java 中使用 Selenium WebDriver 确定单选按钮值

android - 如何避免复制监听器对 Android 中的粘贴使用react?