私の AlertDialog には、特定の条件が満たされたときにテキストが自動入力される が含まれていますbutton
。3 text fields
すべてのテキスト フィールドが空でない場合、ボタンのデフォルト テキストを に変更していますAssign
。
テキストは変更されていますが、UI では元のテキストが表示されたままです。
クラスTextWatcher
を使用して、3 つのフィールドのテキストを監視し、ボタンのテキストを変更しています。
私の短いコード:
private class LocalTextWatcher implements TextWatcher {
@Override
public void afterTextChanged(Editable s) {
//the three text fields
String equipNumText = equipnumbertext.getText().toString().trim();
String plateNumText = licenseplatetext.getText().toString().trim();
String vinNumtext = vintext.getText().toString().trim();
if(!equipNumText.equals("") && !plateNumText.equals("") && !vinNumtext.equals(""))
{
//the button
lookupButton = (Button)findViewById(R.id.lookupbtn);
System.out.println("Default Button value"+lookupButton.getText()); //Look Up
lookupButton.setText("Assign");
//lookupButton.invalidate();
//lookupButton.refreshDrawableState();
System.out.println("Button value after change"+lookupButton.getText()); //Assign
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
}
私の出力はボタンの値に変更があることを示していますが、私のAlertDialog UIは変更で更新されていません。
lookupButton.invalidate()
また、 OR/AND を使用してもlookupButton.refreshDrawableState()
成功しませんでした。