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

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


当前回答

EditText dummy = ... 

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

其他回答

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

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

您可以在main.xml文件中尝试:

android:selectAllOnFocus="true"

或者,在Java中,使用

editText.setSelectAllOnFocus(true);

只需将其添加到.xml文件中的editText中

android:selectAllOnFocus=“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();
            }

        }
    });

这就像一个魅力:

XML

android:selectAllOnFocus="true"

Java

editText.setSelectAllOnFocus(true);

了解更多在TextView - android:selectAllOnFocus