我有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