Android 按钮和编辑文本检查

Android 按钮和编辑文本检查,android,button,android-edittext,textview,Android,Button,Android Edittext,Textview,我有一个编辑文本、文本视图和一个按钮。当我按下时,textview会通过append()更新。但是当我下次按下这个按钮时,文本再次添加,更新我的文本视图。我该怎么办? 没有类似于: btn.setClickable(false); 或 因为如果EditText字段中的文本更新,按钮必须工作。按下按钮时禁用按钮,更改EditText中的文本时启用按钮,例如: Button btn = (Button) findViewById(R.id.mybutton); btn.setOnClickList

我有一个编辑文本、文本视图和一个按钮。当我按下时,textview会通过append()更新。但是当我下次按下这个按钮时,文本再次添加,更新我的文本视图。我该怎么办? 没有类似于:

btn.setClickable(false);


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

按下按钮时禁用按钮,更改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);
    } 
});

按下按钮时禁用,更改编辑文本中的文本时启用,例如:

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

基本上你需要做两件事:

  • 按下按钮后立即禁用该按钮,以通过调用
    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);
    }

 });

祝你好运

基本上你需要做两件事:

  • 按下按钮后立即禁用该按钮,以通过调用
    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);
    }

 });
祝你好运

btn.setEnabled(false);btn.setEnabled(false);