有沒有必要發明一個車輪。 Android框架爲此提供了小部件 - NumberPicker。
編輯:如果您不能或不想使用NumberPicker
,這裏的想法:
private class NumberPicker {
private int value=0;
private Button btnIncr;
private Button btnDecr;
private EditText editText;
public NumberPicker(Button btnIncr, Button btnDecr, EditText editText) {
this.btnIncr=btnIncr;
this.btnDecr=btnDecr;
this.editText=editText;
this.btnIncr.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
value++;
NumberPicker.this.editText.setText(String.valueOf(value));
}
});
this.btnDecr.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
value--;
NumberPicker.this.editText.setText(String.valueOf(value));
}
});
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
value=Integer.parseInt(s.toString());
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
public int getValue() {
return value;
}
}
而且不用擔心TextWatcher當值被改變觸發鈕釦。這不應該導致任何問題。
我使用API版本7. NumberPicker小部件只出現在API 11中。而且我還需要按鈕和字段具有特定的大小和佈局,因此我無法使用單個小部件。 – aatnx