按钮和EditText检查

时间:2016-04-26 22:30:32

标签: android button android-edittext textview

我有一个EditText,TextView和一个按钮。当我按下它时,textnd会通过append()更新。但是当我在下次按下此按钮时,文本再次添加,更新我的textview。我怎么能处理这个? 没有像:

btn.setClickable(false);

btn.setVisibility(View.GONE);

因为如果EditText字段中的文本更新,则按钮必须正常工作。

2 个答案:

答案 0 :(得分:1)

按下按钮时禁用按钮,并在EditText中的文本更改时启用它,如下所示:

Button btn = (Button) findViewById(R.id.mybutton);
btn.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        appendToEditText();
        btn.setClickable(false);
    }
});

EditText editText = (EditText)findViewById(R.id.myedittext);
editText.addTextChangedListener(new TextWatcher() {

    @Override
    public void afterTextChanged(Editable s) {
        // Not Used

    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        // Not Used

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        btn.setClickable(true);
    } 
});

答案 1 :(得分:1)

基本上你需要做两件事:

  • 按下该按钮后立即禁用该按钮,以防止通过调用btn.setEnabled(false);
  • 使用相同的文本更新TextView两次
  • 在EditText内容更改后立即重新启用该按钮。这可以通过TextWatcher完成。

TextWatcher实现的示例如下所示:

 editText.addTextChangedListener(new TextWatcher() {

    public void afterTextChanged(Editable s) {}

    public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

    public void onTextChanged(CharSequence s, int start, int before, int count) {
       btn.setEnabled(true);
    }

 });
祝你好运!