Android Widget con ListView que muestra sólo vistas de carga

Estoy intentando implementar un Widget de aplicación de Android con un ListView . Comencé siguiendo la documentación de Google, pero me quedé atascado con una lista de vistas de carga que se muestran en lugar de los elementos normales de la lista. ¿Alguien tiene experiencias con vistas de lista en widgets?

El código es el mismo que en los documentos de Google . Utilizo un ListView en vez de StackView y como fuente de datos utilizo una base de datos (que no es el problema, los datos se obtienen correctamente – lo he intentado devolviendo una vista de elemento de lista normal con datos correctos en lugar de la vista de carga predeterminada)

Buscar en Internet no me ayudó … También probé este tutorial pero tampoco funcionó. Espero que cualquiera me pueda ayudar, gracias de antemano!

Código

WidgetProvider.java

public class WidgetProvider extends AppWidgetProvider { @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { for (int i = 0; i < appWidgetIds.length; i++) { Intent intent = new Intent(context, EventWidgetService.class); intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetIds[i]); intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME))); RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.widget); rv.setRemoteAdapter(android.R.id.list, intent); rv.setEmptyView(android.R.id.list, R.id.tvEmptyList); appWidgetManager.updateAppWidget(appWidgetIds[i], rv); } super.onUpdate(context, appWidgetManager, appWidgetIds); } } 

WidgetService.java

 public class EventWidgetService extends RemoteViewsService { @Override public RemoteViewsFactory onGetViewFactory(Intent intent) { return new EventsWidgetListProvider(getApplicationContext(), intent); } } 

WidgetListProvider

 public class EventsWidgetListProvider implements RemoteViewsFactory { private List<> _entities = new ArrayList<>(); private Context _context; // private int _appWidgetId; public EventsWidgetListProvider(Context context, Intent intent) { _context = context; // _appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); } @Override public void onCreate() { } private void refreshEntities() { // Request data from database _entities = RequestResult; } @Override public RemoteViews getViewAt(int position) { final RemoteViews remoteViews = new RemoteViews(_context.getPackageName(), R.layout.list_row); // Set data to remoteViews [remoteViews.setTextViewText(), remoteViews.setImageViewResource()] return remoteViews; } @Override public int getCount() { return _entities.size(); } @Override public long getItemId(int position) { return position; } @Override public void onDataSetChanged() { refreshEntities(); } @Override public void onDestroy() { } @Override public RemoteViews getLoadingView() { return new RemoteViews(_context.getPackageName(), R.layout.widget_loading); } @Override public int getViewTypeCount() { return 0; } @Override public boolean hasStableIds() { return false; } } 

Su getViewTypeCount devuelve 0 . Por la documentación :

Si el adaptador siempre devuelve el mismo tipo de vista para todos los elementos, este método debería devolver 1.

Al devolver 0 , le está diciendo al sistema que no tiene ningún tipo de vista que mostrar.

  • Las vistas de StackedWidget no se muestran
  • Cómo actualizar parcialmente las vistas en un widget de aplicación sin reconstruir todas las RemoteViews
  • Notificaciones de Remote View de Android
  • Imagen en Widget
  • Cómo cambiar la imagen en el widget de la aplicación mediante programación en android
  • Conserve la relación de aspecto de la imagen en el widget de aplicación GridView
  • Obtener el ancho del panel de notificaciones de Android
  • Manera fiable de recuperar los detalles de StatusbarNotification (título, texto de notificación)
  • Color del fondo del framelayout del remoteview
  • Cómo hacer referencia a una vista en una notificación personalizada
  • RemoteViews setViewVisibility en Android Widget
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.