📜  android set focus on edittext - Java (1)

📅  最后修改于: 2023-12-03 15:13:20.574000             🧑  作者: Mango

Android - 设置EditText聚焦

在Android中,当一个视图(view)获取焦点时,就称该视图获得了聚焦(focus)。目前,大多数可操作的视图(包括EditText)都可以获得聚焦。这篇文档将介绍如何在Java代码中设置EditText获得聚焦。

方法一:在XML中指定EditText获得焦点

在XML布局文件中,可以使用android:nextFocusDown属性指定下一个应该获得聚焦的视图。因此,如果要指定一个EditText获得聚焦,只需将该属性设置为自身即可,如下所示:

<EditText
    android:id="@+id/edit_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Type something here"
    android:nextFocusDown="@id/edit_text" />

在这个例子中,使用@id/edit_text来指定EditText继续获得聚焦。

方法二:在Java代码中手动指定EditText获得焦点

在Java中,可以使用setFocusable()setFocusableInTouchMode()设置EditText是否可以获取焦点和触摸方式。此外,您还可以使用requestFocus()clearFocus()方法来请求或清除聚焦。例如:

EditText editText = findViewById(R.id.edit_text);

// 设置EditText可聚焦
editText.setFocusable(true);
editText.setFocusableInTouchMode(true);

// 请求EditText聚焦
editText.requestFocus();

在这个例子中,editText是从XML中获取的EditText对象。首先,使用setFocusable()setFocusableInTouchMode()方法将其设置为可以获取焦点和触摸方式。然后,使用requestFocus()方法请求聚焦。

结论

本文提供了两种方法来设置EditText获得焦点(聚焦)。一种是在XML中指定获得聚焦的EditText;另一种是在Java代码中手动指定EditText获得聚焦。您可以根据自己的需求选择其中之一。