我有一个EditText与一些虚拟文本在其中。当用户点击它时,我希望它被选中,以便当用户开始输入虚拟文本被删除。

我怎样才能做到这一点呢?


当前回答

你也可以在editText之后添加一个OnClick方法

_editText.setSelectAllOnFocus(true);

在这里:

_editText.clearFocus();
_editText.requestFocus();

只要单击editText,整个文本就会被选中。

其他回答

通过调用程序上的焦点和选择来管理它

{
editabletext.requestFocus();
editabletext.selectAll();
}

我知道你已经找到了一个解决方案,但真正正确的方法来做你所要求的只是使用android:提示属性在你的EditText。该文本在框为空且未聚焦时显示,但在选择EditText框时消失。

你也可以在editText之后添加一个OnClick方法

_editText.setSelectAllOnFocus(true);

在这里:

_editText.clearFocus();
_editText.requestFocus();

只要单击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 dummy = ... 

// android.view.View.OnFocusChangeListener
dummy.setOnFocusChangeListener(new OnFocusChangeListener(){
    public void onFocusChange(View v, boolean hasFocus){
        if (hasFocus) && (isDummyText())
            ((EditText)v).selectAll();
    }
});