Requisitos previos: ¿Cómo crear un widget básico de una aplicación de Android?
Los widgets son los elementos de la interfaz de usuario proporcionados por una aplicación para acceder a algunas de sus funciones de forma remota, ya sea desde las pantallas de inicio o las pantallas de bloqueo. Los widgets pueden ser estáticos o dinámicos , lo que significa que los elementos de visualización no cambian (estáticos) ni cambian (dinámicos) con el tiempo. A través de este artículo, demostremos la implementación de un widget dinámico . En nuestro caso, cambiaremos la visualización con respecto al tiempo usando un Thread . Aquí hay una vista previa de la misma:
Pasos para crear un widget dinámico
Paso 1: Crear un nuevo proyecto
Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Kotlin como lenguaje de programación.
Paso 2: agregue el widget de la aplicación al proyecto
- Haga clic derecho en la aplicación , mueva el cursor a nuevo , busque la opción » Widget » al final, selecciónela.
- Especifique las propiedades requeridas para el widget, como min.width y height , archivo de configuración e idioma preferido, etc., y continúe. Los archivos se generan automáticamente.
Paso 3: ¿Qué programar? ¿Dónde programar?
- En nuestra aplicación, dado que deseamos mostrar dos mensajes » Solo hazlo » y » Eres increíble » (los usuarios pueden elegir sus propios mensajes) uno tras otro simultáneamente, estaríamos implementando un hilo para generar una pausa (de 1 segundo) en el medio.
- Toda la programación (back-end) se realiza en el recién creado NewAppWidget.kt , Kotlin Class File en la carpeta de origen principal.
Cambios hechos solo aArchivo NewAppWidget.kt
NewAppWidget.kt
package org.geeksforgeeks.widget_dynamic import android.appwidget.AppWidgetManager import android.appwidget.AppWidgetProvider import android.content.Context import android.content.Intent import android.widget.RemoteViews // Implementation of App Widget functionality class NewAppWidget : AppWidgetProvider() { override fun onUpdate( context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray ) { // There may be multiple widgets active, so update all of them for (appWidgetId in appWidgetIds) { updateAppWidget(context, appWidgetManager, appWidgetId) } } // Enter relevant functionality for // when the first widget is created override fun onEnabled(context: Context) { } // Enter relevant functionality for // when the last widget is disabled override fun onDisabled(context: Context) { } } internal fun updateAppWidget( context: Context, appWidgetManager: AppWidgetManager, appWidgetId: Int ) /////////////////////////Add functionality here /////////////////////////////// { Thread(Runnable { while(true){ // Construct the RemoteViews object val views = RemoteViews(context.packageName, R.layout.new_app_widget) views.setTextViewText(R.id.appwidget_text, "Just do it") // Instruct the widget manager to update the widget appWidgetManager.updateAppWidget(appWidgetId, views) Thread.sleep(1000) // Construct the RemoteViews object views.setTextViewText(R.id.appwidget_text, "You are awesome") // Instruct the widget manager to update the widget appWidgetManager.updateAppWidget(appWidgetId, views) Thread.sleep(1000) } }).start() } ////////////////////////////////////////////////////////////////////////////////////
Eso es todo, ejecute el código y verá este widget en la lista de widgets, llévelo a la pantalla de inicio.
Salida: ejecutar en el emulador
Publicación traducida automáticamente
Artículo escrito por aashaypawar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA