首页 文章

在获得焦点时选择EditText内的所有文本

提问于
浏览
200

我有一个带有一些虚拟文本的EditText . 当用户点击它时我希望它被选中,这样当用户开始输入时,虚拟文本就会被删除 .

我怎样才能做到这一点?

9 回答

  • 2

    您可以尝试使用 main.xml 文件:

    android:selectAllOnFocus="true"
    
  • 7
    editText.setSelectAllOnFocus(true);
    

    如果您想以编程方式执行此操作,则此方法有效 .

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

    我知道你've found a solution, but really the proper way to do what you'要求的是在EditText中使用 android:hint 属性 . 当文本框为空且未聚焦时,此文本显示,但在选择EditText框时消失 .

  • 4

    为什么不尝试 android:hint="hint" 向用户提供提示.. !!

    当用户点击edittextbox时,“提示”将自动消失 . 它是最合适的解决方案 .

  • 25

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

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

    SelectAllOfFocus在EditText第一次获得焦点时起作用,但如果您想在每次用户点击时选择文本,则需要在两次之间调用 editText.clearFocus() .

    例如,如果您的应用程序有一个EditText和一个按钮,则在更改EditText后单击该按钮会将焦点保留在EditText中 . 然后,用户必须使用光标句柄和退格键来删除EditText中的内容,然后才能输入新值 . 所以在Button的 onClick 方法中调用 editText.clearFocus() .

  • 146

    您还可以在之后向editText添加OnClick方法

    _editText.setSelectAllOnFocus(true);
    

    并在那:

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

    单击editText后,将立即选中整个文本 .

  • 4

    我尝试了上面的答案,直到我转换语句才行 . 这对我有用:

    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时,虚拟键盘将永远不会出现

相关问题