我正在尝试让Android在获得焦点时选择EditText字段中的所有文本.我在布局中(在两个字段上)都使用此属性:
android:selectAllOnFocus="true"
我不确定这是否相关,但是为了将光标移到第一个可编辑字段(在它之前还有一个禁用字段),我使用以下命令:
quizStartNum.setFocusable(true);
quizStartNum.requestFocus();
但是,虽然在第一次显示布局时光标确实移动到了所需的字段,但是文本并没有突出显示.而是将光标移到文本的左侧(默认行为).如果我通过触摸移动到第二个字段,则会根据需要选择所有文本.然后,如果我再次移至第一个字段,请再次触摸它,也将完全选中该文本.我希望行为从一开始就正确.有没有办法做到这一点?
解决方法:
如果android:selectAllOnFocus =“ true”不起作用,请尝试在该特定EditText上调用setSelectAllOnFocus(true).
如果这也不起作用,那么这是上一则SO帖子中的另一个解决方法.
EditText dummy = ...
dummy.setOnFocusChangedListener(new OnFocusChangedListener(){
public void onFocusChange(View v, boolean hasFocus){
if (hasFocus) && (isDummyText())
((EditText)v).selectAll();
}
});