2012-03-24 31 views
6

所以我试过android:selectAllOnFocus,当然我使用的是android:hint。 应用程序加载,requestFocus触发器和全文被选中。如何在点击EditText视图时选择所有文本?

问题是,当我点击EditText时,选择会丢失。

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

+2

这是完全正常的。否则,用户无法摆脱选择。 – CommonsWare 2012-03-24 23:21:22

+1

您是否在onclick事件中通过java代码尝试过selectAllOnFocus? – AJcodez 2012-03-25 00:00:17

+1

你期望*应该发生什么?通过你的逻辑,选择将永远不会消失,一旦用户点击它。这真的是你想要的吗? – 2012-03-25 00:57:28

回答

1

将选择在View.OnClickListener像这样:

editText.setOnClickListener(new View.OnClickListener() { 

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

道歉,但这是行不通的。文本没有被选中。我确实看到了你想要做的事情,而且我很惊讶它也无法工作。我正在运行ICS。 – 2012-03-25 15:19:25

+1

我不认为你需要' - 1'部分。 – 2014-11-13 16:33:37

7

出于某种原因,它的工作(在果冻豆),只有当我张贴了处理程序:

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

这是我在Android 4+上工作的唯一解决方案 – user2302510 2014-11-24 17:44:32

+0

与我的情况相同:在EditTextPreference中调用BroadcastReceiver中的setText() – wrapperapps 2015-05-28 22:22:10

1

设置选择在View.OnClickListener像这样:(长度相反的0和文本到先前approv ed响应) - 这将确保当用户开始输入时,内容将被覆盖。

editText.setOnClickListener(new View.OnClickListener() { 

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

要选择所有必须编写的文本editText.setSelection(editText.getText()。length (),0); – 2017-11-13 09:36:49

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上时,你就可以点击为选择所有,无论软键盘状态。

附加奖励: 你<activity .../>标签中添加android:windowSoftInputMode="adjustPan"在AndroidManifest.xml文件强制选定的EditText留在眼前时,软键盘弹出。

0

尝试这

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

要选择所有文本。

相关问题