当EditText被聚焦时,我该如何反应?

时间:2011-11-04 18:51:48

标签: android

我有一个用户可以写入的EditText,当应用程序启动时,EditText中已经有一个字符串。当用户单击EditText时,它将变为焦点,而光标是用户单击EditText文本框的位置。

我知道将光标设置为开头的代码是:

editText.setSelection(0);

但是我不知道在哪里放这个代码,我在beforeTextChanged尝试了它,但它没有完成这项工作。

2 个答案:

答案 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”),那么以其他方式表示可能更好。