我想为Android做一个计算器。这里是我的按钮代码:Android计算器按钮
int[] button_ids = {
R.id.BtnNum0, R.id.BtnNum1, R.id.BtnNum2, R.id.BtnNum3, R.id.BtnNum4, R.id.BtnNum5, R.id.BtnNum6,
R.id.BtnNum7, R.id.BtnNum8, R.id.BtnNum9, R.id.BtnAdd, R.id.BtnSub, R.id.BtnDiv, R.id.BtnMult,
R.id.BtnClear, R.id.equals
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditTextValue = (EditText) findViewById(R.id.editText1);
TVValue = (TextView) findViewById(R.id.textView1);
buttons = new ArrayList<Button>();
for(int id : button_ids) {
Button button = (Button)findViewById(id);
button.setOnClickListener(this);
buttons.add(button);
}
}
我怎么能这部分改变的代码块,我不会有申报按钮的ID? (例如R.id.BtnNum0
)
int[] button_ids = {
R.id.BtnNum0, R.id.BtnNum1, R.id.BtnNum2, R.id.BtnNum3, R.id.BtnNum4, R.id.BtnNum5, R.id.BtnNum6,
R.id.BtnNum7, R.id.BtnNum8, R.id.BtnNum9, R.id.BtnAdd, R.id.BtnSub, R.id.BtnDiv, R.id.BtnMult,
R.id.BtnClear, R.id.equals
};
我一直在寻找答案,但我仍然找不到解决方案。
我不认为这是可能的。首先,R.id变量的值将由编译器生成,您只需通过id值访问它们。 – midhunhk
我其实认为这是处理这个问题的一个很好的方法。你没有代码重复,并明确了应该使用onClickListener的按钮。 –
如果你真的不想声明所有的按钮ID,你总是可以在循环中而不是在你的XML中以编程方式创建按钮。 – chancea