我正在通过eclipse和Java为Android制作一个基本计算器。任务是有两个值,如输入和结果。因此,当按下第一个数字时,它会保存它,然后按下加号或减号,然后按下结果的第二个值。
我的想法是为每个按钮创建一个类似这样的方法:
public void number1(View view){
value1 = value2;
value2 = 1;
displayValue();
}
但是没有用,而且我多次重复几行并不好。那么使用switch或任何想法如何使用单一方法并将其放在所有android:onClick""
按钮上呢。
所以如果你有任何想法只是解释它或写一个例子。 提前谢谢。
答案 0 :(得分:0)
那么使用开关呢,
是的,您可以在方法中使用switch
语句,然后启用id
点击的Button
。像
public void someMethod(View v)
{
switch (v.getId()) // get the id of the View clicked
{
case R.id.idOfButton1: // and compare it to your Button ids
// do stuff;
break;
case R.id.idOfButton2:
// do stuff;
break;
}
// put common code before or after switch statement
}
此处v
点击了Button
,因此您可以获取其ID并进行比较。
任何想法都有一个单一的方法,并把它放在所有的android:onClick“”按钮。
在每个Button
的xml中添加该行
<Button
...
android:onClick="someMethod"/>
The Button Docs解释这是如何工作的以及与这样做相关的规则,但相当简单。
答案 1 :(得分:0)
我真的建议你在这种情况下使用ButterKnife作为最佳做法。您所要做的就是对请求的ID使用@OnClick
注释。
@OnClick({ R.id.door1, R.id.door2, R.id.door3 })
public void pickDoor(DoorView door) {
if (door.hasPrizeBehind()) {
Toast.makeText(this, "You win!", LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Try again", LENGTH_SHORT).show();
}
}
并在onCreate
或Activity
的{{1}}处注入此观看次数。
Fragment
有关其他示例,请参阅此site。