我有一个编辑框在我的应用程序中。当用户触摸编辑框时,应选择整个文本,并在开始输入文本时清除文本。这类似于浏览器地址栏的行为。是否有方法实现这个功能?请帮帮我。
我有一个编辑框在我的应用程序中。当用户触摸编辑框时,应选择整个文本,并在开始输入文本时清除文本。这类似于浏览器地址栏的行为。是否有方法实现这个功能?请帮帮我。
使用 android:selectAllOnFocus
或者 setSelectAllOnFocus(boolean)
,可以选中 EditText 中的所有文本。
在焦点上调用EditText.setSelectAllOnFocus(boolean selectAllOnFocus)
以选择所有文本。
为您的EditText
设置单击侦听器,并在onClick
中调用edittext.selectAll();
。
onClick
,而是在我的ET活动中设置了一个onClickListener
,然后将selectAll()
方法放置在它的onClick()
方法上,在你点击它时只会选择所有内容。 - Azurespotandroid:selectAllOnFocus="true"
android:hint
而不是android:text
,这样就可以得到您想要的内容,而无需编写特殊代码。这是有效的,所有文本都将被选中,当用户输入内容时,它将被删除。
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);
您可以使用android:selectAllOnFocus
或setSelectAllOnFocus(boolean)
在EditText中选择所有文本。
当选择所有文本时,请设置一个标志。然后,在EditText上使用addTextChangedListener方法检测文本更改,并使您的类实现或定义一个实现TextWatcher类的内部类。
在此观察器类方法中,检查您设置的标志以指示是否选择了所有文本。如果为true,则执行TextView.setText("")
。这将清除文本。现在再次将标志设置为false,以便随后的文本更改不会导致文本被清除。