所以我尝试了android:selectAllOnFocus,当然我使用的是android:hint。 应用程序加载,requestFocus触发器和全文被选中。
问题是,当我单击EditText时,选择将丢失。
答案 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();