Android EditText:触摸时选择所有文本,并在用户开始输入时清除。

时间:2012-11-21 04:35:31

标签: android android-edittext

我的应用中有一个编辑文字。当用户触摸编辑文本时,应选择整个文本,并且当他开始键入文本时应该清除。一个例子是浏览器地址栏。有没有办法做到这一点?请帮助我。

6 个答案:

答案 0 :(得分:26)

您可以使用

选择EditText中的所有文本

android:selectAllOnFocus以及setSelectAllOnFocus(boolean)

答案 1 :(得分:4)

致电EditText.setSelectAllOnFocus(boolean selectAllOnFocus)选择焦点上的所有文字。

EditTextonClick来电edittext.selectAll();

设置点击听众

答案 2 :(得分:2)

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

android:selectAllOnFocus="true"

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

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

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

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

答案 5 :(得分: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);