<Button android:id="@+id/btn_0" android:text="0" />
<Button android:id="@+id/btn_1" android:text="1" />
... 共 16 個按鈕
public class CalculatorActivity extends Activity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculator);
int[] btnIds = {R.id.btn_0, R.id.btn_1, R.id.btn_2, R.id.btn_3,
R.id.btn_4, R.id.btn_5, R.id.btn_6, R.id.btn_7,
R.id.btn_8, R.id.btn_9, R.id.btn_add, R.id.btn_sub,
R.id.btn_mul, R.id.btn_div, R.id.btn_eq, R.id.btn_clr};
for (int id : btnIds) {
findViewById(id).setOnClickListener(this);
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_0: case R.id.btn_1: case R.id.btn_2: case R.id.btn_3:
case R.id.btn_4: case R.id.btn_5: case R.id.btn_6: case R.id.btn_7:
case R.id.btn_8: case R.id.btn_9:
appendNumber(((Button)v).getText().toString());
break;
case R.id.btn_add: setOperator("+"); break;
case R.id.btn_sub: setOperator("-"); break;
case R.id.btn_mul: setOperator("*"); break;
case R.id.btn_div: setOperator("/"); break;
case R.id.btn_eq: calculateResult(); break;
case R.id.btn_clr: clearDisplay(); break;
}
}
// ... 具體邏輯方法
}
現代專案可用 ViewBinding 直接引用按鈕並設置 Lambda,更類型安全。