public void enableButton(){
exitButton.setEnabled(true);
}
public void disableButton(){
exitButton.setEnabled(false);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second_page);
InputFilter[] FilterArray = new InputFilter[1];
FilterArray[0] = new InputFilter.LengthFilter(4);
initializeEverything();
text1.setFilters(FilterArray);
text2.setFilters(FilterArray);
text3.setFilters(FilterArray);
text4.setFilters(FilterArray);
text5.setFilters(FilterArray);
final TextView textfinal = (TextView)findViewById(R.id.finaltext);
TextWatcher textWatcher = new TextWatcher() {
public void afterTextChanged(Editable s) {
textfinal.setText(calculateTotal());
if(Double.parseDouble(textfinal.getText().toString())>100)
textfinal.setTextColor(Color.RED);
disableButton();
Log.i("yo","gray this out");
if(Double.parseDouble(textfinal.getText().toString())<100)
textfinal.setTextColor(Color.BLACK);
enableButton();
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
};
text1.addTextChangedListener(textWatcher);
text2.addTextChangedListener(textWatcher);
text3.addTextChangedListener(textWatcher);
text4.addTextChangedListener(textWatcher);
text5.addTextChangedListener(textWatcher);
exitButtonをグレー表示するのに問題があります。initializeEverything()で、exitButton.setEnabled(false)を設定すると、最初はグレー表示されます。editTexts(text1、text2 ...)に100未満の数値を入力すると、ボタンが有効になります。しかし、100を超えると、再び無効にする必要がありますが、有効なままです。Logcatメッセージ「graythisshitout」が送信されるので、textWatcherが正しく機能していることがわかります。なぜ、ボタンが無効にならないのかわかりません。