我有一个EditText与一些虚拟文本在其中。当用户点击它时,我希望它被选中,以便当用户开始输入虚拟文本被删除。
我怎样才能做到这一点呢?
我有一个EditText与一些虚拟文本在其中。当用户点击它时,我希望它被选中,以便当用户开始输入虚拟文本被删除。
我怎样才能做到这一点呢?
当前回答
我知道你已经找到了一个解决方案,但真正正确的方法来做你所要求的只是使用android:提示属性在你的EditText。该文本在框为空且未聚焦时显示,但在选择EditText框时消失。
其他回答
我尝试了上面的答案,直到我交换了陈述才奏效。这对我来说很管用:
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时,虚拟键盘将永远不会出现
editText.setSelectAllOnFocus(true);
如果您想以编程的方式进行,这是可行的。
这对我来说很有用:
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();
}
}
});
我知道你已经找到了一个解决方案,但真正正确的方法来做你所要求的只是使用android:提示属性在你的EditText。该文本在框为空且未聚焦时显示,但在选择EditText框时消失。
你也可以在editText之后添加一个OnClick方法
_editText.setSelectAllOnFocus(true);
在这里:
_editText.clearFocus();
_editText.requestFocus();
只要单击editText,整个文本就会被选中。