私は、彼らが空かそうでないかどうかを確認/検証する(など名前、アドレス、など)いくつかのEditText
のフィールドを持っています。それらのすべてが満たされている場合、私は私に設定したいボタンを入力を入力します。いずれかのフィールドが空白の場合は、 Enterボタンを無効にします。ボタンを有効にする前にすべてのEditTextフィールドを検証していますか?
以下のコードを書いていますが、自分のボタンがではなく、すべてのフィールドが既に入力されていてもが有効になっていません。私は条件が満たされているかどうかを判断するブール変数の束を使用しています。
アプリが正常に実行されてからどこがうまくいかなかったのか分かりませんが、自分のフィールドの1つまたはすべてが空の場合にEnterボタンを無効にしたいという希望の結果が表示されません。
マイ変数:
boolean filledName, filledAddress = false; //These variables will determine if my fields are empty or not
EditText name, address;
Button btnEnter;
私のonCreate:私のonCreate内部
protected void onCreate(Bundle savedInstanceState) {
...
//Get views from layout xml via IDs
name = (EditText) findViewById(R.id.name);
address = (EditText) findViewById(R.id.address);
btnEnter = (Button) findViewById(R.id.btnEnter);
btnEnter.setEnabled(false); //initialize the Enter button to be disabled on Activity creation
...
そして、私の追加テキスト変更リスナー:
name.addTextChangedListener (new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int i, int i1, int i2){
if (!(name.toString().trim().isEmpty()))
filledName = true; //if name field is NOT empty, filledName value is true
}
....
//other implemented abstract codes here
});
address.addTextChangedListener (new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int i, int i1, int i2){
if (!(address.toString().trim().isEmpty()))
filledAddress = true; //if address field is NOT empty, filledAddress value is true
}
....
//other implemented abstract codes here
});
//This should set the Enter button to enabled once all the boolean conditions are met
//but for some reason it's not working
if (nameFilled == true && addressFilled == true)
btnEnter.setEnabled(true);
} //end of onCreate()
、それが働いている間、私は、ユーザーが唯一の空白空白を入力し、および/または、彼らはそれがまだ有効に何かを入力した後、そのエントリを削除した場合の別の問題に遭遇した:あなたはこのようにそれを行うことができますボタン。それを防ぐための何かがありますか?または何らかの理由でボタンをもう一度無効にしますか? – 5120bee
これらのすべては、入力されたテキストを検証するメソッドから処理できます。既存のcheckFields()メソッドは、無効にして有効にすることもできます。あなたがテキストに満足していない場合は、最初に有効にすることができません。 – Reg