¿Debo crear una actividad para cada pantalla?

Comenzaré con un ejemplo … Si va a Configuración> Aplicaciones> Administrar aplicaciones , se abrirá una nueva pantalla con una lista de las aplicaciones instaladas: si hace clic en cualquier aplicación de la lista, se abrirá una nueva pantalla que contiene información sobre la aplicación.

Bueno, algunos ajustes de mi aplicación deben ser gestionados a través de una lista, y esta lista debe comportarse como el ejemplo anterior. Ya he creado una PreferenceActivity con algunas categorías, cada una de las cuales tiene algunos elementos: al hacer clic en uno de estos elementos, me gustaría abrir una nueva pantalla donde los nuevos datos se colocan en una lista, al igual que la lista de las aplicaciones del ejemplo anterior. Además, al hacer clic en cualquier entrada de esta lista, se abrirá una nueva pantalla con el fin de establecer algunos datos.

¿Cómo debo proceder? ¿Debo crear una actividad para cada pantalla?

5 Solutions collect form web for “¿Debo crear una actividad para cada pantalla?”

Android se creó de esta manera, de acuerdo con la documentación "Una actividad es una cosa única y enfocada que el usuario puede hacer.", Así que sí, debe tener una actividad para cada pantalla. Esto cambió un poco con Honeycomb con la introducción de Fragmentos, pero si no se está desarrollando para tabletas debe mantener una página, una mentalidad de actividad en Android.

Generalmente usted tiene cada llamada de la actividad por otra, el llamador es empujado sobre una pila (a menos que la actividad de la llamada pida ser quitada) y va inactivo hasta que vuelve

Básicamente, se crea una Intención en la Actividad A para iniciar la Actividad B, se puede pasar datos usando startActivityForResult con extras en las intenciones Ejemplo: Cómo pasar datos entre actividades

Cuando presiona el botón Atrás, la actividad anterior se vuelve a activar y el manejador de resultados configurado puede obtener los datos de devolución.

También puede ver fragmentos en la API de soporte si desea proporcionar compatibilidad con tabletas que se vea y se comporte mejor.

Es propably la mejor manera de hacerlo, al menos si no estás trabajando en una actividad de estilo de asistente.

Utilice ListActivity para mostrar su lista y pasar datos hacia y desde esta actividad utilizando intents .

Yo era capaz de implementar esto en el trabajo, no recuerdo ahora en la cabeza cómo lo implementé, fue hace mucho tiempo. Si nadie tiene una buena respuesta para ti, lo publicaré mañana, sin embargo: Recuerdo poner una preferencia, que actuará como un botón, luego agregé un preferenciaClickListener para abrir una nueva pantalla de preferencia al hacer clic. Pero como te dije, te lo publicaré mañana si no recibes una respuesta satisfecha.

¡Buena suerte!

ACTUALIZAR:

 ?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="Personal" android:key="personal_category"> <Preference android:key="birth" android:title="Birth" android:summary="Choose your birthday"/> <PreferenceScreen android:key="height_imp" android:title="Height" android:summary="Enter your height"> <EditTextPreference android:key="foot" android:title="Foot" android:summary="foot" android:numeric="integer" android:dialogTitle="Foot"/> <EditTextPreference android:key="inch" android:title="Inch" android:summary="inch" android:numeric="integer" android:dialogTitle="Inch"/> </PreferenceScreen> <EditTextPreference android:key="weight" android:title="Weight" android:summary="Enter your weight" android:numeric="integer" android:dialogTitle="Weight"/> </PreferenceCategory> </PreferenceScreen> 

¡Eso es! Al hacer clic en él, que le llevará a la segunda PreferenceScreen y así sucesivamente, y finalmente cuando usted necesita para personalizar su diseño que tendrá que abrir una actividad. A continuación, puede utilizar una preferencia y agregar onPreferenceClick:

 @Override public boolean onPreferenceClick(Preference preference) { if(preference == birth){ startActivity(new Intent(getBaseContext(), Birth.class)); } if(preference == height_imp){ PreferenceScreen a = (PreferenceScreen) preference; a.getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.WHITE)); return false; } return true; } 

Si necesita cambiar el fondo o algo más con la pantalla de preferencia, añada un preferenciaClickListener: height_imp = (PreferenceScreen)getPreferenceScreen().findPreference("height_imp"); height_imp.setOnPreferenceClickListener(this); height_imp = (PreferenceScreen)getPreferenceScreen().findPreference("height_imp"); height_imp.setOnPreferenceClickListener(this);

Ver … si una vez que el usuario quiere volver de cierto punto a la posición anterior … si usted había creado una actividad separada para cada uno de ellos … la actividad actual será eliminado de la pila … dejando la actividad anterior para que se muestre … Si está cambiando el contenido de la lista para cada nueva pantalla … en lugar de crear nueva actividad … entonces será difícil para el usuario volver … debe cambiar una y otra vez el contenido del adaptador .. Así que creo .. la creación de actividad por separado para cada pantalla es mejor .. (y puede utilizar el mismo [cualquier diseño personalizado si tiene] archivo de diseño para todas las actividades ..)

  • Preferencias de Android spinner
  • Inicializar las preferencias de XML en la actividad principal
  • Android: SharedPreference: Los valores predeterminados no se establecen en el inicio
  • Cómo cambiar el estilo de texto en el fragmento de preferencia
  • La mejor manera de almacenar en caché json
  • ¿Cuál es la diferencia entre getDefaultSharedPreferences () y getPreferences ()?
  • Android: ListPreference ocultar / deshabilitar valor
  • ¿Cómo implementar RingtonePreference en PreferenceFragmentCompat?
  • Cómo abrir un cuadro de diálogo de una entrada de texto en una pantalla de preferencia?
  • SwitchPreferences llama varias veces al método onPreferenceChange ()
  • Compruebe si un inicio de sesión y una contraseña ya se encuentran en Preferencias
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.