用户点击EditText时如何选择NOT ALL文本?

时间:2017-03-21 14:16:41

标签: android android-edittext

我想在用户点击文字时选择(不是全部)文字。

final EditText field = (EditText) findViewById(R.id.edittext);
field.setText("BlaBlaBlaBlaBlaBlaBlaBlaBla");

field.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            field.setSelection(0, 10);
        }
    }
});

但未选择文字。光标出现在点击位置。

我该怎么做?

更新

为什么“Hello World”应用程序中的简单方法setSelection(start,end)不起作用?

1 个答案:

答案 0 :(得分:0)

我找到了不可思议的解决方案。如果我设置 android:selectAllOnFocus =" true" 或以编程方式。

简单的代码段工作正常:

final EditText field = (EditText) findViewById(R.id.edittext);
field.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            field.setSelection(0, 10);
        }
    }
});

但如果我删除 android:selectAllOnFocus =" true" 或设置 false - 一切都会崩溃。

我不知道为什么!!