0

我有一个存储了 stringA 的 EditText。当某些进程发生时,EditText 会使用新值 (stringB) 进行更新。我有三个按钮。我希望在 EditText = stringA 时禁用它们,当 EditText 保存 stringB 值时更新为启用。

final EditText latlongText = (EditText) findViewById(R.id.EditText_COord)

这是我的编辑文本。默认情况下,它只保存一个以 android:hint= "blah blahstringA" 形式存储在 XML 中的字符串

我在代码中这样更新它:

   latlongText.setText(stringB);

在 onCreate 中,我有:

 buttonA.setEnabled(false);
 buttonB.setEnabled(false);
 buttonC.setEnabled(false);

我不确定在哪里或如何正确放置代码以重新启用这些按钮。

也许“可点击”属性也是一个选项?我希望它们在 stringB 覆盖当前存储为“android:hint”字符串的值时启用。

谢谢

4

3 回答 3

2

使用 textwatcher看看这个基本上你需要使用 textwatchers 来了解你的 edittext 何时更改,你可以启用/禁用按钮 depeding on the text in edittext

于 2012-10-09T11:38:18.203 回答
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);
        }
    }
});
于 2012-10-09T12:30:04.830 回答
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);
}

试试这个代码

于 2012-10-09T11:43:15.803 回答