将ButtonArray连接到XML按钮

时间:2015-10-12 00:50:12

标签: java android arrays button android-studio

首先感谢您的帮助。 我正在创建一个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

谢谢大家!

3 个答案:

答案 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);
}