【问题标题】:How to empty edittext without setText("");如何在没有 setText("") 的情况下清空edittext;
【发布时间】:2013-07-31 19:16:08
【问题描述】:

有没有办法在不设置文本的情况下重置edittext值:

((EditText) findViewById(R.id.yoursXmlId)).setText("");

编辑:

当我使用 setText("") 时调用 Textchanged 列表器。

【问题讨论】:

  • 如果你想以编程方式,那么你必须使用我认为的这种方法。

标签: android


【解决方案1】:

另一个选项是:EditText.getText().clear(); 但无论如何你都必须投射:

((EditText) findViewById(R.id.yoursXmlId)).getText().clear();

【讨论】:

  • 不错,但如果他会这样使用,那么我认为他也可以使用 setText("")
  • 感谢您的回答。实际上,我认为这个答案会清除我的错误。仍然是我期待的答案:)
  • 这行得通,但如果你再次尝试在EditText 中写一些东西,初始文本会再次出现
  • 如果有人遇到问题,请使用 editText.post(() -> editText.getText().clear());
【解决方案2】:

你可以使用以下方式

科特林:

myEditText.text.clear()

Java:

EditText myEditText = ((EditText) findViewById(R.id.yoursXmlId));
myEditText.getText().clear()

【讨论】:

    【解决方案3】:

    我遇到过三星设备没有使用 setText("") 清除文本的情况,所以我使用了:

    字符串空白 = "\u0020"; // 空格符

    设置文本(空白);

    它就是这样工作的。可能是字体问题。

    【讨论】:

      【解决方案4】:

      如果有人发现所选答案不起作用 请尝试

      editText.post(() -> editText.getText().clear());
      

      editText.post(new Runnable() {
                  @Override
                  public void run() {
                      editText.getText().clear();
                  }
              });
      

      【讨论】:

        【解决方案5】:

        一个函数是:

        fun setTextViewEmpty(textView: TextView){
        (textView as EditText ).text.clear()   }
        

        灵感来自this

        【讨论】:

          猜你喜欢
          • 2013-01-30
          • 1970-01-01
          • 2011-06-30
          • 2012-04-16
          • 1970-01-01
          • 2021-02-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多