Как добавить кнопку на экран PreferenceScreen?

Я новичок в разработке Android и только что наткнулся на настройки. Я нашел PreferenceScreen и хотел создать с его помощью функцию входа в систему. Единственная проблема, с которой я столкнулся, заключается в том, что я не знаю, как добавить кнопку «Войти» на PreferenceScreen .

Вот как выглядит мой PreferenceScreen :

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
...
    <PreferenceScreen android:title="@string/login" android:key="Login">
        <EditTextPreference android:persistent="true" android:title="@string/username" android:key="Username"></EditTextPreference>
        <EditTextPreference android:title="@string/password" android:persistent="true" android:password="true" android:key="Password"></EditTextPreference>
    </PreferenceScreen>
...
</PreferenceScreen>

Кнопка должна находиться прямо под двумя EditTextPreference s.

Есть ли простое решение этой проблемы? Одно решение, которое я нашел, не работает, потому что я использую sub PreferenceScreen s.

Обновление:

Я понял, что могу добавлять кнопки следующим образом:

<PreferenceScreen android:title="@string/login" android:key="Login">
        <EditTextPreference android:persistent="true" android:title="@string/username" android:key="Username"></EditTextPreference>
        <EditTextPreference android:title="@string/password" android:persistent="true" android:password="true" android:key="Password"></EditTextPreference>
        <Preference android:layout="@layout/loginButtons" android:key="loginButtons"></Preference>
</PreferenceScreen>

и файл макета ( loginButtons.xml ) выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:weightSum="10" 
    android:baselineAligned="false" android:orientation="horizontal">
    <Button android:text="Login" android:layout_width="fill_parent"
        android:layout_weight="5" android:layout_height="wrap_content"
        android:id="@+id/loginButton" android:layout_gravity="left"></Button>
    <Button android:text="Password?" android:layout_width="fill_parent"
        android:layout_weight="5" android:layout_height="wrap_content"
        android:id="@+id/forgottenPasswordButton"></Button>
</LinearLayout>

Теперь кнопки появляются, но я не могу получить к ним доступ в коде. Я пробовал это с помощью findViewById () , но это возвращает null. Есть идеи, как мне получить доступ к этим кнопкам?

128
задан Aaron 21 October 2019 в 14:53
поделиться