我有2個編輯文本和1個按鈕。我如何才能使該按鈕被禁用,直到用戶填寫所有編輯文本?我使用這段代碼,但是當我運行這段代碼時,即使我填充了2個編輯文本,它也總是禁用該按鈕,我也不知道onTextChanged和beforeTextChanged在做什麼!如何在編輯文本爲空/非空時禁用/啓用按鈕
請幫助我,我將不勝感激。
public class TestActivity extends Activity {
/** Called when the activity is first created. */
EditText edit1;
EditText edit2;
EditText edit3;
Button button;
String test1;
@Override
protected void onCreate(Bundle savedInstanceState) {
// Your initialization code...
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
edit1= (EditText) findViewById(R.id.edit1);
edit2= (EditText) findViewById(R.id.edit2);
button=(Button) findViewById(R.id.button);
TextWatcher watcher = new LocalTextWatcher();
edit1.addTextChangedListener(watcher);
edit2.addTextChangedListener(watcher);
updateButtonState();
}
void updateButtonState() {
boolean enabled;
if(enabled = checkEditText(edit1)
&& checkEditText(edit2)){
button.setEnabled(enabled);}
}
}
private boolean checkEditText(EditText edit) {
return Integer.getInteger(edit1.getText().toString()) != null;
}
private class LocalTextWatcher implements TextWatcher {
public void afterTextChanged(Editable s) {
updateButtonState();
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
}
}}}
在checkEditText方法,這將是更容易,如果長度來測試該文本大於0 – VirtualTroll 2012-02-27 20:08:24