我的应用程序中有一个编辑文本。当用户触摸编辑文本时,应该选择整个文本,当他开始输入时,应该清除文本。一个例子是浏览器地址栏。有什么办法吗?请帮帮我。
问问题
16564 次
6 回答
32
您可以使用 EditText 选择所有文本
于 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 回答