1
내가 뭘하려는 건 NumberPicker처럼 EditText에 삽입 할 수있는 값의 범위를 제한하는 것입니다. NumberPicker를 사용하지 않는 이유는 무엇입니까? API 11이 필요하고 내 애플리케이션이 API 10 이상과 호환되기를 바랍니다. 범위를 1에서 120 사이로 설정했습니다. 사용자가 해당 범위를 벗어난 숫자를 입력하면 EditText의 텍스트가 15로 변경됩니다.addTextChangedListener에서 EditText의 텍스트를 변경하는 더 나은 방법
이 코드는 작동하지만 나는 이것이 최선의 방법은 아니라고 생각합니다. 이것을 구현하십시오.
final EditText ed = ((EditText) findViewById(R.id.editMinutes));
TextWatcher tw = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
try {
int minutes = Integer.valueOf(s.toString());
if (minutes < 1 || minutes > 120) {
ed.setText("15");
}
} catch (NumberFormatException ex) {
ed.setText("15");
}
}
};
ed.addTextChangedListener(tw);
어떻게 향상시킬 수 있습니까? 이 일을 더 훌륭하고 우아한 방법이 있습니까?
IF 숫자 선택기를 원한다면 AOSP 소스 코드에 들어가서 번호 선택 도구를 찾아서 앱에 추가하십시오. 그것을 사용하십시오. 숫자 피커, 즉 GUI 구성 요소에만 하드웨어 지원이 필요하지 않습니다. https://gitorious.org/atrix-aosp/frameworks_base/source/d762f063be970033314d3f77194bfe5cb284b605:core/java/android/widget/NumberPicker.java –
두 번째로, 코드가 단순한 것으로 보입니다. – user210504
나는 ' 나는 외부 코드를 사용할 수 있다고 생각하지 않습니다. 적어도 그 크기는 아니야. –