【问题标题】:Android EditText: select all text while touch and clear when user starts typing.Android EditText:在触摸时选择所有文本,并在用户开始输入时清除。
【发布时间】:2012-11-21 04:35:31
【问题描述】:

我的应用中有一个编辑文本。当用户触摸编辑文本时,应该选择整个文本,当他开始输入时,应该清除文本。一个例子是浏览器地址栏。有什么办法吗?请帮帮我。

【问题讨论】:

  • 你能告诉我,你为什么要这样做吗?
  • 在键盘启用后使用 android:hint="你想显示的文本女巫" 这是despra
  • 你可以[this][1]选择edittext [1]中的所有文本:stackoverflow.com/a/4669511/1627599
  • @Asfaq:我想在用户开始输入时清除以前的数据

标签: android android-edittext


【解决方案1】:

您可以使用

选择 EditText 中的所有文本

android:selectAllOnFocussetSelectAllOnFocus(boolean)

【讨论】:

  • 谢谢。这会选择文本,但是当我再次触摸编辑文本以显示键盘时,文本不会被清除。
【解决方案2】:

调用EditText.setSelectAllOnFocus(boolean selectAllOnFocus) 选择所有焦点文本。

为您的EditText 设置点击侦听器,并在onClick 中调用edittext.selectAll();

【讨论】:

  • 为您的 EditText 设置一个点击监听器并在 onClick 中调用 edittext.selectAll();
  • 谢谢,这比答案更好,因为您可能不希望您的 ET 在您到达活动时立即集中注意力。但是,我没有在 XML 中执行 onClick,而是在我的 ET 活动中设置了一个 onClickListener,然后将 selectAll() 方法放在我的 ET 上的 onClick() 方法上,它只有在您单击它时才会全选。
【解决方案3】:

将属性添加到您的 main.xml 文件:

android:selectAllOnFocus="true"

然后将选择所有文本,当用户键入将删除它的内容时。

【讨论】:

    【解决方案4】:

    您可以使用属性android:hint 而不是android:text,并且无需特殊代码即可获得所需的内容。

    【讨论】:

      【解决方案5】:

      您可以使用android:selectAllOnFocussetSelectAllOnFocus(boolean) 选择EditText 中的所有文本。

      选择所有文本时设置一个标志。然后通过在 EditText 上使用 addTextChangedListener 方法检测文本更改,并使您的类实现或定义实现 TextWatcher 类的内部类。

      在这个观察者类方法中,检查你设置的标志是否所有的文本都被选中。如果为真,则执行TextView.setText("")。这将清除文本。现在再次将该标志设置为 false,以便后续文本更改不会导致文本被清除。

      【讨论】:

        【解决方案6】:

        这是有效的,所有文本都将被选中,当用户输入一些内容时,将删除它。

                     editText.setSelectAllOnFocus(true);
        
                    editText.requestFocus();
                    editText.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            InputMethodManager keyboard = (InputMethodManager) catalougeJobDetailFragment
                                    .getActivity().getSystemService(
                                            Context.INPUT_METHOD_SERVICE);
                            keyboard.showSoftInput(commentEt, 0);
                        }
                    }, 20);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-05-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-09-12
          • 1970-01-01
          • 2015-01-04
          • 2014-09-27
          相关资源
          最近更新 更多