1. 程式人生 > >Android 多個Edittext不為空,Button才可點選的方法

Android 多個Edittext不為空,Button才可點選的方法

本人Android新手,在開發過程中遇到需要對多個Edittext進行判斷,只有Edittext全部不為空時,Button才可以點選。而百度無果後,自己用了比較原始的方法解決了這一問題。不知有沒有其他的實現方法。

在Android 填寫資訊並提交時,一般都不能讓使用者提交空白的資訊。因此需要對Edittext進行輸入監聽。通過判斷Edittext是否為空,來設定Button是否可點選。對只有一個Edittext時,實現起來較為簡單。但是在一般開發中,Edittext通常不是一個。

直接上程式碼吧。。

 int flag=0;
    public class mywatcher implements
TextWatcher {
private EditText EditId=null; private String str; public mywatcher(EditText id){ EditId=id; } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { if(EditId==editText1){ if
(TextUtils.isEmpty(editText1.getText())) insert.setEnabled(false); else flag = flag - 1;//1 } if(EditId==editText2){ if(TextUtils.isEmpty(editText2.getText())) insert.setEnabled(false
); else flag = flag - 1;//2 } if(EditId==editText3){ if(TextUtils.isEmpty(editText3.getText())) insert.setEnabled(false); else flag = flag - 1;//3 } if(EditId==editText4){ if(TextUtils.isEmpty(editText4.getText())) insert.setEnabled(false); else flag=flag-1; } if(EditId==editText5){ if(TextUtils.isEmpty(editText5.getText())) insert.setEnabled(false); else flag=flag-1; } } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { if(EditId==editText1){ if(TextUtils.isEmpty(editText1.getText())) insert.setEnabled(false); else flag = flag + 1;//1 } if(EditId==editText2){ if(TextUtils.isEmpty(editText2.getText())) insert.setEnabled(false); else flag = flag + 1;//2 } if(EditId==editText3){ if(TextUtils.isEmpty(editText3.getText())) insert.setEnabled(false); else flag = flag + 1;//3 } if(EditId==editText4){ if(TextUtils.isEmpty(editText4.getText())) insert.setEnabled(false); else flag=flag+1; } if(EditId==editText5){ if(TextUtils.isEmpty(editText5.getText())) insert.setEnabled(false); else flag=flag+1; } //Log.i("flag", String.valueOf(flag)); if(flag==5) { insert.setEnabled(true); } }; }

簡單來說,就是Edittext為空時,flag-1;當Edittext不為空時,flag+1。當所有的Edittext不為空時,flag等於Edittext的個數。由此來實現這一功能。