<分区>
如果屏幕 (UI) 中有这么多按钮并且需要执行单独的功能,对于这种情况,我们可以为每个按钮使用 setOnClickListner 或者什么是处理这个问题的优化方法?
<分区>
如果屏幕 (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 - 固定长度 64 字节 EC P-256 带有 JCE 的签名
android - 将视频从 Android/IOS 上传到 Node 服务器时出现服务器超时错误
git - 初始提交失败的 android studio。无法阅读
android - 为什么gradle错误地覆盖了AndroidManifest.xml?
java - Hibernate:一次删除所有具有关联的实体