Android更好的按钮点击方式?
所以现在我正在整理一些代码,我有很多关于按钮的else/ifs,我想知道什么是一个好方法来做到这一点并使其更整洁 所以我有12个按钮,每个按钮都会在点击时播放声音并改变颜色。我有一个方法,但我想知道是否有一个好方法,只检测按钮,而不是if/elseAndroid更好的按钮点击方式?,android,button,click,Android,Button,Click,所以现在我正在整理一些代码,我有很多关于按钮的else/ifs,我想知道什么是一个好方法来做到这一点并使其更整洁 所以我有12个按钮,每个按钮都会在点击时播放声音并改变颜色。我有一个方法,但我想知道是否有一个好方法,只检测按钮,而不是if/else public void onClick(View v) { int id = v.getId(); changeToWhite(); if (id == R.id.a_button) { currentButt
public void onClick(View v) {
int id = v.getId();
changeToWhite();
if (id == R.id.a_button) {
currentButton(a, 81);
} else if (id == R.id.aSharp_button) {
currentButton(aSharp, 82);
} else if (id == R.id.b_button) {
currentButton(b, 83);
} else if (id == R.id.c_button) {
currentButton(c, 72);
}
等等
那么,有没有更好的方法?我知道有很多其他的/如果是不好的,所以我想尝试改进它。
谢谢 您可以改用“开关盒”
>
}您可以改用“开关盒”
>
}用case语句代替怎么样
public void onClick(View v) {
// Perform action on click
switch(v.getId()) {
case R.id.a_button:
currentButton(a, 81);
break;
case R.id.aSharp_button:
currentButton(aSharp, 82);
break;
/*
and the rest of the cases here.
*/
}
}
用case语句代替它怎么样
public void onClick(View v) {
// Perform action on click
switch(v.getId()) {
case R.id.a_button:
currentButton(a, 81);
break;
case R.id.aSharp_button:
currentButton(aSharp, 82);
break;
/*
and the rest of the cases here.
*/
}
}
我假设您正在使用XML并设置onClick属性 一种更简单/整洁的方法是使用
我假设您正在使用XML并设置onClick属性 一种更简单/整洁的方法是使用
首先,使用if/else嵌套几乎没有任何惩罚。没有必要尝试对应用程序进行这种级别的微观管理。你不会从中受益。试着从可读性的角度考虑优化这一点 现在,为了回答您的问题,您可以使用switch/case构造
public void onClick(View v) {
switch (item.getItemId()) {
case R.id.aBar_item1:
//Item onClick logic
return true;
case R.id.aBar_item2:
//Item onClick logic
return true;
case R.id.aBar_item3:
//Item onClick logic
return true;
...
}
}
首先,使用if/else嵌套几乎没有任何惩罚。没有必要尝试对应用程序进行这种级别的微观管理。你不会从中受益。试着从可读性的角度考虑优化这一点 现在,为了回答您的问题,您可以使用switch/case构造
public void onClick(View v) {
switch (item.getItemId()) {
case R.id.aBar_item1:
//Item onClick logic
return true;
case R.id.aBar_item2:
//Item onClick logic
return true;
case R.id.aBar_item3:
//Item onClick logic
return true;
...
}
}
对于初学者,可以使用
switch
语句。对于初学者,可以使用switch
语句。可以使用switch case?有人告诉我它在Android中不工作!如果它工作,当当点击进入太快。谢谢@AndyOHart-如果您的R.id是在库项目中生成的(它们是非最终的),则switch案例将不起作用,但在switch语句中使用您自己的R.id会很好。您可以使用switch案例吗?有人告诉我它在Android中不工作!如果它工作,当当点击进入太快。谢谢@AndyOHart-如果您的R.id是在库项目中生成的(它们不是最终的),那么switch案例将不起作用,但是在switch语句中使用您自己的R.id就可以了。您可以使用case语句吗?有人告诉我你不能在安卓系统中使用它们!如果这样行的话,那就太好了:)多谢了!只有当您的项目是库项目时,才可以使用swith/case。@Bruno Mateus这到底是什么意思?正如@ianhanniballake之前更好地解释的那样。“如果您的R.id是在库项目中生成的(在库项目中它们不是最终的),那么切换案例将不起作用,但是在切换语句中使用您自己的R.id就可以了”您可以使用案例语句吗?有人告诉我你不能在安卓系统中使用它们!如果这样行的话,那就太好了:)多谢了!只有当您的项目是库项目时,才可以使用swith/case。@Bruno Mateus这到底是什么意思?正如@ianhanniballake之前更好地解释的那样。“如果你的R.id是在图书馆项目中生成的(它们不是最终的),那么转换案例将不起作用,但在转换声明中使用你自己的R.id将很好。”我想更改它的唯一原因是因为它是为大学准备的,他们说如果他们看到很多if/else声明,我们可能会受到很大的惩罚。但是对于像这样的东西,如果它点击一个按钮,我不确定是否有更好的方法。我想改变它的唯一原因是因为它是为了上大学,他们说如果他们看到很多if/else语句,我们可能会受到很大的惩罚。但是对于像这样的东西,它会点击一个按钮,我不确定是否有更好的方法