Crear un diseño personalizado para las preferencias

Estoy tratando de crear un diseño personalizado para administrar las preferencias. Sé que existe el diseño estándar y recomendado proporcionado por PreferenceActivity , pero si quiero agregar, por ejemplo, un Button , ¿cómo puedo obtenerlo?

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 pueda habilitar, que luego aparezca en la pantalla siguiente (tiene que estar en este progresión lineal). El usuario debe configurar estos cada vez que usa la aplicación. Actualmente, estoy considerando usar la actividad de PreferenceActivity estándar para representar este sub menú de opciones.

Tal vez este no es el enfoque correcto?

Editar: pasé por alto la solución al buscar en Google. Cómo agregar un botón a PreferenceScreen

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

           

Tiene algunos desperdicios, pero básicamente crea 2 líneas (encabezado, subtítulo) con una imagen a la derecha. Podrías reemplazar ImageView con un botón y estarías listo. A continuación, establece el diseño para la preferencia individual en su archivo xml/prefs.xml la siguiente manera:

  

Después de eso, simplemente findViewById en tu código de Actividad y adjunta un oyente al botón. Podría tener que trabajar un poco más si tiene varios botones en la Actividad, pero no debería ser irracional.

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 pueda habilitar, que luego aparezca en la pantalla siguiente (tiene que estar en este progresión lineal).

Esto suena como una PreferenceScreen anidada.