我有一个存储了stringA的EditText。当某些进程发生时,EditText将使用新值(stringB)进行更新。我有三个按钮。我希望它们在EditText = stringA&时禁用更新为在EditText保存stringB值时启用。
final EditText latlongText = (EditText) findViewById(R.id.EditText_COord)
这是我的EditText。默认情况下,它只保存一个存储在XML中的字符串,如android:hint =“blah blahstringA”
我在代码中更新了这个:
latlongText.setText(stringB);
在onCreate中,我有:
buttonA.setEnabled(false);
buttonB.setEnabled(false);
buttonC.setEnabled(false);
我不确定在何处或如何正确放置代码以重新启用这些按钮。
也许“可点击”属性也是一个选项? 我希望它们在stringB覆盖当前存储为“android:hint”字符串的值时启用。
由于
答案 0 :(得分:2)
看看这个using textwatcher基本上你需要使用textwatchers来了解你的edittext何时被更改,你可以启用/禁用在edittext中的文本的按钮
答案 1 :(得分:2)
latlongText.addTextChangedListener(new TextWatcher(){
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
String st=latlongText.getText().toString().trim()
if(st.equals(stringA)){
buttonA.setEnabled(false);
buttonB.setEnabled(false);
buttonC.setEnabled(false);
}
else if(st.equals(stringB)){
buttonA.setEnabled(true);
buttonB.setEnabled(true);
buttonC.setEnabled(true);
}
}
});
答案 2 :(得分:0)
if(latlongText.getText().equals(stringA)){
buttonA.setEnabled(false);
buttonB.setEnabled(false);
buttonC.setEnabled(false);
}
elseIf(latlongText.getText().equals(stringB)){
buttonA.setEnabled(true);
buttonB.setEnabled(true);
buttonC.setEnabled(true);
}
试试这段代码