我有一个带有一些虚拟文本的EditText。当用户点击它时我希望它被选中,这样当用户开始输入时,虚拟文本就会被删除。
我怎样才能做到这一点?
答案 0 :(得分:479)
您可以尝试使用main.xml
文件:
android:selectAllOnFocus="true"
答案 1 :(得分:151)
editText.setSelectAllOnFocus(true);
如果您想以编程方式执行此操作,则此方法有效。
答案 2 :(得分:32)
EditText dummy = ...
// android.view.View.OnFocusChangeListener
dummy.setOnFocusChangeListener(new OnFocusChangeListener(){
public void onFocusChange(View v, boolean hasFocus){
if (hasFocus) && (isDummyText())
((EditText)v).selectAll();
}
});
答案 3 :(得分:25)
我知道你找到了一个解决方案,但实际上你正在做的事情的正确方法就是在EditText中使用android:hint
属性。当文本框为空且未聚焦时,此文本显示,但在选择EditText框时消失。
答案 4 :(得分:11)
为什么不尝试 android:hint =“hint”向用户提供提示.. !!
当用户点击edittextbox时,“提示”将自动消失。 它是最合适的解决方案。
答案 5 :(得分:11)
通过调用程序上的焦点和选择来管理它
{
editabletext.requestFocus();
editabletext.selectAll();
}
答案 6 :(得分:4)
SelectAllOnFocus在EditText第一次获得焦点时起作用,但如果您想要选择文本每个时间,用户点击它,您需要在两次之间调用editText.clearFocus()
。
例如,如果您的应用有一个EditText和一个按钮,则在更改EditText后单击该按钮会将焦点留在EditText中。然后,用户必须使用光标句柄和退格键来删除EditText中的内容,然后才能输入新值。因此,请在按钮的editText.clearFocus()
方法中调用onClick
。
答案 7 :(得分:4)
您还可以在
之后向editText添加OnClick方法_editText.setSelectAllOnFocus(true);
并且在那:
_editText.clearFocus();
_editText.requestFocus();
单击editText后,选择整个文本。
答案 8 :(得分:2)
我尝试了以上答案,但直到我切换语句后才起作用。这对我有用:
myEditText.setSelectAllOnFocus(true);
myEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onClickMyEditText();
}
});
private void onClickMyEditText() {
if(myEditText.isFocused()){
myEditText.clearFocus();
myEditText.requestFocus();
}else{
myEditText.requestFocus();
myEditText.clearFocus();
}
}
我不得不问焦点是否在EditText上,如果不先请求焦点,然后将其清除。否则,下次我单击EditText时,虚拟键盘将永远不会出现
答案 9 :(得分:1)
只需将其添加到.xml文件中的editText中
android:selectAllOnFocus =“ true”
答案 10 :(得分:0)
这对我有用:
myEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(myEditText.isFocused()){
myEditText.requestFocus();
myEditText.clearFocus();
myEditText.setSelection(myEditText.getText().length(), 0);
}else{
myEditText.requestFocus();
myEditText.clearFocus();
}
}
});