18

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

4

6 回答 6

32

您可以使用 EditText 选择所有文本

android:selectAllOnFocus并且setSelectAllOnFocus(boolean)

于 2012-11-21T04:44:25.837 回答
6

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

EditText为您的onClick通话设置点击监听器edittext.selectAll();

于 2012-11-21T04:38:42.133 回答
3

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

android:selectAllOnFocus="true"

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

于 2012-11-21T04:38:25.907 回答
1

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

于 2012-11-21T05:10:15.493 回答
0

您可以使用android:selectAllOnFocus或选择 EditText 中的所有文本setSelectAllOnFocus(boolean)

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

在此观察程序类方法中,检查您设置的标志以指示是否选择了所有文本。如果是真的,那么做TextView.setText("")。这将清除文本。现在再次将该标志设置为 false,以便后续文本更改不会导致文本被清除。

于 2012-11-21T05:19:18.747 回答
0

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

             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);
于 2014-11-24T09:20:29.897 回答