我有一个用户可以写入的EditText,当应用程序启动时,EditText中已经有一个字符串。当用户单击EditText时,它将变为焦点,而光标是用户单击EditText文本框的位置。
我知道将光标设置为开头的代码是:
editText.setSelection(0);
但是我不知道在哪里放这个代码,我在beforeTextChanged尝试了它,但它没有完成这项工作。
答案 0 :(得分:1)
您可以通过设置putting an OnFocusChangedListener来完成此操作。你会做这样的事情:
et.setOnFocusChangeListener(new View.OnFocusChangeListener(){
public void onFocusChange(View view, boolean hasFocus){
if(hasFocus){
((EditText)view).setSelection(0);
}
}
});
et
是您要设置监听器的文本编辑。
完全崩溃:我自己没有试过这个代码。
答案 1 :(得分:1)
虽然可能有一种方法可以做到这一点,但我并不完全确定它是最好的用户体验,因为当用户点击特定位置的文本框时,他们真的希望光标在那里。想象一下,例如,如果用户在那里看到“abcd”并想要将其编辑为“abcde”,那么他们认为“我只是点击最后并附加'e'”。想象一下,当用户无法正常工作时,用户会感到沮丧。
如果您希望用户编辑文本框,我会考虑将其留空。如果您使用现有文本作为提示(“email@example.com”),那么以其他方式表示可能更好。