eya*_*zba 7 android android-edittext
我的情况是:我有一个EditText,在它下面我有一个按钮,叫做"全选".它的目的是让用户按下它来选择所有文本.
当点击该按钮时,我援引selectAll()的EditText,但不是选择所有文字,在某些情况下(通常,当光标已经定位在文本中的某处),将光标移动到位置0(文开始)和文本遗体未选中.再次单击该按钮将选择全部.但当然它应该在第一次点击时发生.
从这个问题:Android EditText selectAll()不起作用,如果一个点击android 4.x中的相同字段只有它似乎这是Android 4.0及更高版本中的一个错误.(在Google问题跟踪器中没有提及).
有谁知道克服这个问题的方法?似乎问题也在其他选择方法中,而不仅仅是selectAll().
(ps这个问题与我上面提到的问题有点重复.但我打开了另一个问题,因为该问题的作者满意并选择了部分答案(设置android:selectAllOnFocus="true"),而在我的情况和场景中它并没有帮助我并没有解决问题.
谢谢.
IME引起的问题.如果显示光标拖动指针则选择必须为零宽度.
你需要取消拖动指针.它可以通过更改文本进行.例如replace:
Editable text = edit.getText();
if (text.length() > 0) {
text.replace(0, 1, text.subSequence(0, 1), 0, 1);
edit.selectAll();
}
Run Code Online (Sandbox Code Playgroud)
我们用相同的符号替换文本的第一个符号.它会导致取消拖动指针并允许选择没有错误.
尝试这个:
yourEditText.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//((EditText)v).selectAll();
((EditText)v).setSelection(startValue, stopValue);
}
});
Run Code Online (Sandbox Code Playgroud)
或这个:
yourEditText.setOnFocusChangedListener(new OnFocusChangedListener(){
@Override
public void onFocusChange(View v, boolean hasFocus){
if (hasFocus){
//((EditText)v).selectAll();
((EditText)v).setSelection(startValue, stopValue);
}
}
});
Run Code Online (Sandbox Code Playgroud)
或这个:
theEditText.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
EditText editText = (EditText)view;
editText.setSelection(editText.getText().length()-1); // selects all the text
}
});
Run Code Online (Sandbox Code Playgroud)
或这个:
theEditText.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
EditText editText = (EditText)view;
editText.performLongClick();
}
});
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助 .. :)
| 归档时间: |
|
| 查看次数: |
2746 次 |
| 最近记录: |