首先感谢您的帮助。 我正在创建一个Calculator应用程序, 在XML文件中,我创建了按钮[0-9] 现在想把它们全部放在Button Array
中 int NumberOfButtons=10;
Button button[] = new Button[NumberOfButtons];
这是阵列, 在尝试使用数组之前,我创建了每个按钮
Button one, two, three, four, five, six, seven, eight, nine, zero, add, sub, mul, div, cancel,
equal;
现在这是通过findValueid
连接的按钮 one = (Button) findViewById(R.id.button1);
two = (Button) findViewById(R.id.button2);
three = (Button) findViewById(R.id.button3);
four = (Button) findViewById(R.id.button4);
five = (Button) findViewById(R.id.button5);
six = (Button) findViewById(R.id.button6);
seven = (Button) findViewById(R.id.button7);
eight = (Button) findViewById(R.id.button8);
nine = (Button) findViewById(R.id.button9);
zero = (Button) findViewById(R.id.button0);
如何节省处理能力,减少代码使用? 喜欢FOR功能 或者可以使用While
谢谢大家!
答案 0 :(得分:1)
您可以使用GridView来制作它。代码更少,更易读。
答案 1 :(得分:1)
您的代码已经非常简单并且可以快速执行。通常,每个按钮都需要像你所做的那样编写 - 这使得计算器编写代码很麻烦。循环的使用,在这种情况下,我认为不适用 - 不是为了提高效率。
现在您需要确定onTouch()事件的位置,以便放置和检测按钮的触摸事件。
@FireSun建议的内容非常有帮助。
答案 2 :(得分:0)
试试这个。
int[] ids = {
R.id.button1
, R.id.button2
, R.id.button3
...
, R.id.button9
}
for (int id : ids) {
findViewById(id).setOnClickListener(this);
}
如果您的按钮ID有规则,请尝试此操作。
for (int i = 0; i < numberOfButtons; i++) {
String buttonId = "button" + i;
int resourceId = getResources().getIdentifier(buttonId, "id", getPackageName());
findViewById(resourceId).setOnClickListener(this);
}