Creación de un diseño personalizado para las preferencias

Estoy tratando de crear un diseño personalizado para gestionar las preferencias. Sé que hay el diseño estándar y recomendado proporcionado por PreferenceActivity, pero si quiero añadir, por ejemplo, un botón, ¿cómo hago para hacer eso?

Planeo diseñar la aplicación para que cuando el usuario toque un determinado elemento en la pantalla de actividad principal, vaya a un "submenú" de opciones que el usuario puede habilitar, que aparece posteriormente en la siguiente pantalla (tiene que estar en este Progresión lineal). El usuario debe configurarlas cada vez que utilice la aplicación. Actualmente, estoy considerando usar el estándar PreferenceActivity para representar este submenú de opciones.

Tal vez este no es el enfoque correcto?

Edit: Pasé por alto la solución mientras Google. Cómo agregar un botón a PreferenceScreen

Siempre puede crear un elemento de diseño de preferencias personalizadas y utilizarlo en PreferenceActivity. Por ejemplo, hice esto:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeight" android:gravity="center_vertical" android:paddingRight="?android:attr/scrollbarSize"> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15dip" android:layout_marginRight="6dip" android:layout_marginTop="6dip" android:layout_marginBottom="6dip" android:layout_weight="1"> <TextView android:id="@android:id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:textAppearance="?android:attr/textAppearanceLarge" android:ellipsize="marquee" android:fadingEdge="horizontal" /> <TextView android:id="@android:id/summary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@android:id/title" android:layout_alignLeft="@android:id/title" android:textAppearance="?android:attr/textAppearanceSmall" android:maxLines="2" /> <ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/go" android:layout_alignParentRight="true" /> </RelativeLayout> <!-- Preference should place its actual preference widget here. --> <LinearLayout android:id="@android:id/widget_frame" android:layout_width="wrap_content" android:layout_height="fill_parent" android:gravity="center_vertical" android:orientation="vertical" /> </LinearLayout> 

Tiene algunos residuos, pero básicamente crea 2 líneas (título, subtítulo) con una imagen a la derecha. Usted podría substituir el ImageView con un botón y usted estaría todo listo. A continuación, establece el diseño de la preferencia individual en el archivo xml/prefs.xml la siguiente manera:

 <Preference android:title="@string/label_pref_version" android:key="@string/pref_version" android:layout="@layout/pref" /> 

Después de que acaba de fuego findViewById en su código de actividad y adjuntar un oyente al botón. Podría tener que hacer un poco más de trabajo si tiene varios botones en la actividad, pero no debe ser irrazonable.

Puede encontrar el código fuente aquí: https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/layout/preference.xml

Planeo diseñar la aplicación para que cuando el usuario toque un determinado elemento en la pantalla de actividad principal, vaya a un "submenú" de opciones que el usuario puede habilitar, que aparece posteriormente en la siguiente pantalla (tiene que estar en este Progresión lineal).

Esto suena como una PreferidaScreen anidada.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.