检查EditText以启用/禁用按钮

时间:2012-10-09 11:12:29

标签: android string button android-edittext clickable

我有一个存储了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”字符串的值时启用。

由于

3 个答案:

答案 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);
}

试试这段代码