0

stringA が保存されている EditText があります。いくつかのプロセスが発生すると、EditText が新しい値 (stringB) で更新されます。私は3つのボタンを持っています。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
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 に答える
2

textwatcher を使用してこれを見てください。基本的に、edittext がいつ変更されたかを知るために textwatchers を使用する必要があり、edittext のテキストに基づいてボタンを有効/無効にすることができます。

于 2012-10-09T11:38:18.203 に答える
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 に答える