我有一个无法解决的奇怪错误。错误是:不可转换类型“ int”和“ TextWatcher”的对象之间的“ equals()”。这是我的代码:

if( textWatcher_ans.equals(R.string.editText_7)){
    Toast.makeText(getApplication().getBaseContext(),
                   (R.string.Good),Toast.LENGTH_SHORT).show();
}

            private final TextWatcher textWatcher_ans = new TextWatcher(){
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                textView_name.setVisibility(View.VISIBLE);
            }
            public void afterTextChanged(Editable s) {
                if (s.length() == 0) {
                    textView_name.setVisibility(View.GONE);
                } else {
                    textView_name.setText("You have entered : " + editText_surname.getText());
                }
            }


我很困,我不知道该怎么办。
有人可以帮我吗?

最佳答案

如果您的目的是在R.string.Good中的文本与editText_surname匹配的情况下显示R.string.editText_7消息,请尝试执行以下操作:

首先将TextWatcher附加到editText_surname

editText_surname.addTextChangedListener(textWatcher_ans);


在您的afterTextChangedMethod中:

public void afterTextChanged(Editable s) {
    if (s.length() == 0) {
        textView_name.setVisibility(View.GONE);
     } else {
        textView_name.setText("You have entered : " + s.toString());
     }

    if (s.toString().equals(context.getString(R.string.editText_7)) {
        Toast.makeText(getApplication().getBaseContext(),
               (R.string.Good),Toast.LENGTH_SHORT).show();
    }
}

07-27 19:21