我想爲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