studio programacion para móviles mejores los hashtags empresas desarrollo curso buscador aplicaciones android

para - manual de programacion android pdf



Crear un diseño personalizado para las preferencias (2)

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


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.


Siempre puede crear un elemento de diseño de preferencias personalizado y usarlo 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 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:

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

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