Как setOnFocusChangeListener работает в Android? - PullRequest
0 голосов
/ 05 августа 2020

Я разработал простое приложение Android, чтобы проверить, как работает setOnFocusChangeListener.

Код Java:

public class MainActivity extends AppCompatActivity {
    TextView tv;
    EditText et;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv = findViewById(R.id.textView);
        et = findViewById(R.id.edittext);
        et.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View view, boolean b) {
                if (b) {
                    tv.setText("Edit Text is focused!!");
                }
                else {
                    tv.setText("You stopped focussing on editText");
                }
            }
        });
    }
}

Код XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Nothing happened"
        android:textSize="30sp"
        android:gravity="center"
        android:id="@+id/textView" />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:hint="Write here!!!"
        android:id="@+id/edittext" />
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Click Me!!" />

</LinearLayout>

Но когда я нажимаю на текст редактирования, чтобы что-то написать, фокусируется Edit Text !! и отображается в текстовом представлении.

После остановки фокуса EditText никогда не отображается на экране, даже когда я щелкаю где-нибудь еще на экране или на кнопке. Я хотел бы знать, когда будет отображаться часть else из onFocusChange?

1 Ответ

0 голосов
/ 05 августа 2020
• 1000 позволяет получить фокус для editText, но если нет другого представления с этим свойством также на true, ни одно представление не может получить фокус.

Это свойство существует для каждого View, установите его в true для каждого View вы хотите получить фокус при нажатии, иначе фокус не будет передан другим представлениям, таким как textView или button.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...