首页 > 解决方案 > 如何将按钮添加到 SettingsActivity 模板?

问题描述

我正在 Android 上开发(还不太舒服)一个 SettingsActivity,我在模板上得到了一个,做了一些调整,它工作正常。但我想在最后添加一个按钮。我的xml现在是这样的:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

    <SwitchPreference
        android:defaultValue="true"
        android:key="gravacao_baby_near"
        android:summaryOff="Quando o dispositivo estiver fora da zona segura, reproduzir aúdio gravado"
        android:summaryOn="Quando o dispositivo estiver fora da zona segura, reproduzir aúdio gravado"
        android:title="Habilitar reprodução da gravação" />

    <EditTextPreference
        android:capitalize="words"
        android:defaultValue="Informações de emergência"
        android:inputType="textMultiLine"
        android:key="texto_tag"
        android:maxLines="10"
        android:selectAllOnFocus="true"
        android:singleLine="false"
        android:title="Texto exibido por Tag" />

    <ListPreference
        android:defaultValue="10"
        android:entries="@array/settings_list_preference_titles"
        android:entryValues="@array/settings_list_preference_values"
        android:key="distancia_max_permitida"
        android:negativeButtonText="@null"
        android:positiveButtonText="@null"
        android:title="Distância aproximada máxima permitida" />

</PreferenceScreen>

我试图做的是在最后一个 ListPreference 之后添加以下代码,但它说“这里不允许”:

<Button
    android:id="@+id/gravarTag"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/gravarTag"
    android:textAllCaps="false" />

如何以正确的方式或简单的方式做到这一点?

标签: androidandroid-layoutsettings

解决方案


添加一个父 LinearLayout 然后添加首选项屏幕,按钮子项

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="match_parent"
android:width="match_parent>
<PreferenceScreen 

    <SwitchPreference
        android:defaultValue="true"
        android:key="gravacao_baby_near"
        android:summaryOff="Quando o dispositivo estiver fora da zona segura, reproduzir aúdio gravado"
        android:summaryOn="Quando o dispositivo estiver fora da zona segura, reproduzir aúdio gravado"
        android:title="Habilitar reprodução da gravação" />

    <EditTextPreference
        android:capitalize="words"
        android:defaultValue="Informações de emergência"
        android:inputType="textMultiLine"
        android:key="texto_tag"
        android:maxLines="10"
        android:selectAllOnFocus="true"
        android:singleLine="false"
        android:title="Texto exibido por Tag" />

    <ListPreference
        android:defaultValue="10"
        android:entries="@array/settings_list_preference_titles"
        android:entryValues="@array/settings_list_preference_values"
        android:key="distancia_max_permitida"
        android:negativeButtonText="@null"
        android:positiveButtonText="@null"
        android:title="Distância aproximada máxima permitida" />

</PreferenceScreen>

<Button
    android:id="@+id/gravarTag"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/gravarTag"
    android:textAllCaps="false" />
</LinearLayout>

推荐阅读