Hogar Redes sociales Cómo usar fragmentos para programar su aplicación de Android: dummies

Cómo usar fragmentos para programar su aplicación de Android: dummies

Video: Tutorial 17: Como usar fragments en Android 2024

Video: Tutorial 17: Como usar fragments en Android 2024
Anonim

La interfaz de usuario en el ejemplo de la aplicación de Android tiene tres paneles: una lista de elementos, un panel de detalles que describe el elemento seleccionado en la lista y un panel de detalles en profundidad. En una pequeña pantalla de teléfono inteligente, cada panel puede ser una actividad separada. Pero una pantalla de tableta en modo horizontal tiene espacio para más de un panel.

La siguiente imagen muestra esta aplicación con dos de los tres paneles. El panel de la izquierda muestra una lista de componentes de Android SDK. El panel de la derecha muestra una descripción de cualquier componente que se elija en la lista de la izquierda. (La descripción es en realidad las primeras oraciones de la documentación del SDK del componente). Este patrón de detalles sobre la derecha es parte de muchas interfaces de usuario.

Dos fragmentos unidos a una actividad.

Para crear la pantalla, construyes una actividad. La actividad tiene dos fragmentos: un fragmento a la izquierda y otro a la derecha. El panel izquierdo muestra el mismo fragmento a lo largo de la ejecución de la aplicación, por lo que puede declarar ese fragmento en el archivo de diseño de la actividad. El panel derecho muestra un fragmento a la vez, pero el fragmento cambia durante la ejecución de la aplicación. Entonces declaras un diseño de marco en el panel derecho.


En el código anterior, los atributos android: layout_ whatever dividen la pantalla en dos mitades: una mitad para el elemento fragmento y la otra mitad para el elemento FrameLayout. La estrategia con estos atributos es comenzar asignando un mínimo de cero píxeles para cada elemento. Por supuesto, cero píxeles significa ningún ancho en absoluto (que es lo mismo que ser invisible). Para evitar que las dos mitades del diseño sean invisibles, asigne valores iguales a cero de layout_weight a las dos mitades. Con valores de peso distintos de cero, cada mitad se expande para llenar el espacio disponible en el diseño.

El uso del nombre de clase completo del fragmento (com. Allmycode. Frag. ComponentNamesFragment) es intencional. Un nombre abreviado (como. ComponentNamesFragment) no cortará la mostaza.

En caso de que te lo estés preguntando, los detalles incorporados de AndroidElementBackground proporcionan un aspecto uniforme para cosas como la mitad derecha (elementos que muestran detalles sobre un elemento que el usuario ha seleccionado).

El código de actividad principal de la aplicación es impresionantemente poco interesante.

paquete com. allmycode. frag; Importar Android. aplicación Actividad; Importar Android. os. Haz; la clase pública AllPurposeActivity extiende la actividad {@Override protected void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R.diseño. main);}}

El siguiente código contiene la clase ComponentNamesFragment. En virtud del diseño en el primer ejemplo, Android planta un ComponentNamesFragment en el lado izquierdo de la pantalla del dispositivo.

paquete com. allmycode. frag; Importar Android. aplicación FragmentManager; Importar Android. aplicación FragmentTransaction; Importar Android. aplicación ListFragment; Importar Android. os. Haz; Importar Android. ver. Ver; Importar Android. widget. ArrayAdapter; Importar Android. widget. Vista de la lista; public class ComponentNamesFragment extends ListFragment {final static String [] COMPONENTS = {"Activity", "Service", "BroadcastReceiver", "ContentProvider"}; @Override public void onActivityCreated (Bundle savedInstanceState) {super. onActivityCreated (savedInstanceState); setListAdapter (nuevo ArrayAdapter (getActivity (), android. R. layout. simple_list_item_1, COMPONENTS));} @Override public void onListItemClick (ListView l, View v, int index, long id) {// Crear fragmento con índice DocsFragment docsFragment = nuevo DocsFragment (); Bundle args = Ayudante. getBundleWithIndex (index); docsFragment. setArguments (args); // Borrar la pila posterior FragmentManager fragmentManager = getFragmentManager (); int backStackEntryCount = fragmentManager. getBackStackEntryCount (); for (int i = 0; i 

La clase del código anterior amplía la clase ListFragment de Android. Un ListFragment es un fragmento que muestra una lista. Al principio del ciclo de vida del fragmento, el código en el ejemplo anterior establece un adaptador de lista (más específicamente, un ArrayAdapter) para el fragmento. Entonces, ¿qué tan temprano es "temprano"?

El primer parámetro del constructor ArrayAdapter es un contexto. ¡Pero espera! A diferencia de una actividad, un fragmento no es un contexto. Por lo tanto, no puede usar la palabra clave this para el primer parámetro del constructor ArrayAdapter.

Afortunadamente, un fragmento tiene un método getActivity. Una llamada a getActivity toma la actividad a la que está adjuntado el fragmento. Entonces, para el primer parámetro del constructor ArrayAdapter, puede llamar a getActivity. Por supuesto, no puede llamar a getActivity hasta que el fragmento esté adjunto a una actividad existente. Es por eso que el método onActivityCreated del fragmento se reemplaza arriba. Android llama aActivityCreated después de adjuntar el fragmento y llamar al método onCreate de la actividad. Entonces todo funciona según lo planeado.

El android. aplicación La clase de bisabuelos de la clase de actividad es android. contenido. Contexto. Pero el android. aplicación La clase de padres de la clase Fragment es simple y antigua Java. lang. Objeto. Por lo tanto, en el código de una actividad, la palabra clave esto se refiere a un contexto. Pero en el código de un fragmento, la palabra clave esto no se refiere a un contexto.

En el ejemplo anterior, el constructor para ArrayAdapter tiene tres parámetros.

El primer parámetro es el contexto, ese desagradable parámetro que te obliga a poner el constructor dentro del método onActivityCreated.

El segundo parámetro es simple_list_item_1: un diseño estándar de Android.

El diseño simple_list_item_ 1 crea el aspecto que ve en el lado izquierdo de la imagen. Android tiene muchos de estos diseños estándar. Para obtener un resumen de los diseños disponibles, visite el sitio para desarrolladores de Android.

El tercer parámetro es la colección de elementos que aparecerán en la lista.

En este ejemplo, esos elementos provienen de la matriz de COMPONENTES, que se declara en el mismo ejemplo.

Como una ListActivity, un ListFragment tiene un método onListItemClick. Puede responder a un clic al trabajar con un FragmentTransaction, un FragmentTransaction y un FragmentManager:

DocsFragment representa el lado derecho de la imagen de arriba.

Una transacción de fragmento es un montón de cosas que haces con fragmentos. Por ejemplo, configurar para reemplazar un fragmento por otro es una transacción.

Un administrador de fragmentos hace lo que sugiere su nombre. Gestiona las llegadas y salidas de fragmentos.

Cómo usar fragmentos para programar su aplicación de Android: dummies

Selección del editor

Social Media Commerce: Desarrolle sus propios podcasts: los podcasts

Social Media Commerce: Desarrolle sus propios podcasts: los podcasts

Pueden considerarse podcasts o no. "Redes sociales", pero pueden ser útiles para formar una audiencia y difundir su mensaje. Cuando la radio de conversación se convierte en un archivo digital multimedia que está disponible para su descarga desde Internet, se convierte en un podcast. No tienes que estar en una computadora para escuchar; cada teléfono inteligente ...

Social Media Commerce: Realice llamadas gratis con Skype: las redes sociales

Social Media Commerce: Realice llamadas gratis con Skype: las redes sociales

Proporcionan muchos formas de conectarse con sus clientes y responder sus preguntas. En el Informe de preferencias del consumidor de Avaya 2011, el modo de contacto preferido para los asuntos de servicio al cliente fue el teléfono. Skype ofrece un servicio para realizar y recibir llamadas. Puede usar Skype para realizar llamadas gratuitas de la computadora a la computadora ...

Social Media Commerce: aprenda de las cuentas de Twitter Stellar: dummies

Social Media Commerce: aprenda de las cuentas de Twitter Stellar: dummies

En las redes sociales, como en muchas cosas, puedes aprender mucho estudiando a los demás. Aquí hay dos cuentas de Twitter que vale la pena ver. Observar su calidad y diferentes estilos vale más que un vistazo. Ambos representan grandes empresas, pero ambos son impulsados ​​por el servicio al cliente: Kathy Ireland: Un ejemplo de un empresario brillante es @kathyireland ...

Selección del editor

Cómo agregar una imagen a su aplicación de Android: dummies

Cómo agregar una imagen a su aplicación de Android: dummies

Agregando imágenes a un Android la aplicación es simple: arrástrelos desde la carpeta donde están almacenados a la carpeta src / main / res / drawable-xxhdpi, como se muestra en la siguiente figura. Para la aplicación de cambio de modo silencioso, necesita dos imágenes de timbre: apagado y encendido. Asegúrese de poner ambas imágenes en la carpeta src / main / res / drawable-xxhdpi. Cuando arrastre imágenes a ...

Cómo acceder a la libreta de direcciones para aplicaciones iOS: dummies

Cómo acceder a la libreta de direcciones para aplicaciones iOS: dummies

El marco iOS proporciona funciones que permiten que su aplicación funcione con las bases de datos que vienen con dispositivos iOS. Una de esas bases de datos es la Libreta de direcciones, que incluye personas y su información de contacto. Los dispositivos iOS también proporcionan una aplicación Contactos que permite a los usuarios administrar esta base de datos agregando nuevos contactos, actualizándolos, eliminándolos ...

Manejo de eventos de control remoto en Samsung SmartTV Application Development - dummies

Manejo de eventos de control remoto en Samsung SmartTV Application Development - dummies

Códigos de control remoto son mapeado en códigos JavaScript que cambian el foco entre los elementos, asignando un proceso apropiado a cada uno de los eventos clave registrados. Consulte la siguiente lista de valores de clave registrados para una aplicación de pantalla completa: KEY_VOL_UP KEY_VOL_DOWN KEY_MUTE KEY_TOOLS KEY_INFO KEY_EMODE KEY_DMA KEY_MENU KEY_SOURCE KEY_PRECH KEY_FAVCH KEY_CHLIST KEY_DMA KEY_TTX_MIX KEY_GUIDE KEY_SUBTITLE KEY_ASPECT ...

Selección del editor

Agregue un nuevo párrafo en una diapositiva de PowerPoint 2007 - Dummies

Agregue un nuevo párrafo en una diapositiva de PowerPoint 2007 - Dummies

Para agregar un nuevo párrafo a una diapositiva con el esquema de PowerPoint que aparece en la pestaña del esquema de PowerPoint, mueva el punto de inserción al final del párrafo que desea que siga el nuevo párrafo y luego presione Entrar. PowerPoint crea un nuevo párrafo en el mismo nivel de esquema que el párrafo anterior ...

¿Qué hay de nuevo en Microsoft Outlook 2016? - Dummies

¿Qué hay de nuevo en Microsoft Outlook 2016? - Dummies

La versión de Outlook 2016 se centra principalmente en eliminar la confusión de la interfaz de usuario y simplificar su flujo de trabajo. Microsoft Outlook es el cliente de correo electrónico empresarial más favorecido del mundo. La aplicación ya ofrece una excelente integración con contactos, calendarios, notas, tareas y, por supuesto, correo electrónico. Outlook 2016 se centra en eliminar la confusión de la interfaz de usuario y simplificar el flujo de trabajo. Algunos de los nuevos ...

Agregue una nueva diapositiva a su presentación de PowerPoint 2007 - Dummies

Agregue una nueva diapositiva a su presentación de PowerPoint 2007 - Dummies

Puede agregar una nueva diapositiva de PowerPoint a su presentación de muchas maneras cuando está trabajando con el esquema de PowerPoint. Esta lista muestra los métodos más populares para agregar una nueva diapositiva a su presentación: Promueva el texto existente: Promueva un párrafo existente al más alto nivel. Este método divide una diapositiva en dos diapositivas. Promocione ...