单击EditText视图时如何选择所有文本?

时间:2012-03-24 23:18:07

标签: android

所以我尝试了android:selectAllOnFocus,当然我使用的是android:hint。 应用程序加载,requestFocus触发器和全文被选中。

问题是,当我单击EditText时,选择将丢失。

我已经读过: Select all text inside EditText when it gets focus

6 个答案:

答案 0 :(得分:8)

出于某种原因,只有当我用Handler发布它时,它才能起作用(在Jelly Bean上):

new Handler().post(new Runnable() {
    @Override
    public void run() {
        paidView.selectAll();
    }
});

答案 1 :(得分:1)

将选择设置为View.OnClickListener,如下所示:

editText.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        editText.setSelection(0, editText.getText().length() - 1);
    }
}

答案 2 :(得分:1)

在View.OnClickListener中设置选择,如下所示:( 0和文本长度与之前批准的响应相反) - 这将确保当用户开始输入时,内容将被覆盖。

editText.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        editText.setSelection(editText.getText().length() - 1, 0);
    }
}

答案 3 :(得分:1)

我意识到这是一个老帖子,但我遇到了同样的问题。对我来说,原因是我喜欢将键盘移开(解除它)以获取我的方位(或按下按钮来添加或删除数据行),当我回到我之前编辑的EditText时,让键盘弹回并且文本取消选择令人讨厌,迫使我要么将光标移动到我想要开始删除的位置,要么触摸另一个EditText然后再触摸原始文件以重新选择所有内容。我只想让键盘弹出并重新选择文本,并在我转到EditText时准备覆盖。

有一些简单的解决方案:

1)在大多数情况下,长时间点击都会为你做这件事。

2)如果您已经在使用setSelectAllOnFocus(true),则可以在onClick侦听器中抛出一个简单的clearFocus()requestFocus()

etMyEditText.setSelectAllOnFocus(true);
etMyEditText.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        view.clearFocus();
        view.requestFocus();
    }
});

这样,无论软键盘状态如何,EditText都会在您点击它时选择所有内容。

额外奖金: 在AndroidManifest.xml文件中的android:windowSoftInputMode="adjustPan"标记内添加<activity .../>,以便在弹出软键盘时强制所选的EditText保持可见状态。

答案 4 :(得分:1)

试试这个

editText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
    editText.selectAll();
    //or this.selectAll();
}

选择所有文字。

答案 5 :(得分:0)

做完findViewById之后,请执行以下代码,您可以开始这样做:

    edtProductPrice.setSelectAllOnFocus(true);
    edtProductPrice.requestFocus();
    edtProductPrice.selectAll();