Je crée un appwidget avec une liste. In RemoteViewsFactory classe Je remplis la liste à partir de la base de données SQLite. Tout est très bien, mais si je mets une chaîne dans méthode updateWidget() que je reçois IndexOutOfBoundsException dans une méthode getViewAt de RemoteViewsFactory.Pourquoi j'obtiens IndexOutOfBoundsException dans une RemoteViewsFactory?
Il n'y a aucune raison pour laquelle cela cause une exception. Parce que dans updateWidget() méthode que je définis le texte à une seule vue à distance.
Voici une liste de code et chaîne qui causent un problème:
static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId)
{
SharedPreferences sPreferences = context.getSharedPreferences("WidgetSettings_"+appWidgetId,0);
RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.initial_layout);
DBHelper dbHelper = DBHelper.getInstance(context);
// To avoid Exception in a RemoteViewsFactory.getViewAt() method just comment or delete this line
rv.setTextViewText(R.id.textViewListTotal, "Total sum of items"); // this line cause an Exception. If I commenting it then all is OK
final Intent intent = new Intent(context, WidgetRemoteViewsService.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME)));
rv.setRemoteAdapter(appWidgetId, R.id.items_list, intent);
rv.setEmptyView(R.id.items_list, R.id.empty_view);
final Intent actionIntent = new Intent(context, WidgetProvider.class);
actionIntent.setAction(WidgetProvider.ACTION_MANAGE);
actionIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
actionIntent.setData(Uri.parse(actionIntent.toUri(Intent.URI_INTENT_SCHEME)));
PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context, 0, actionIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
rv.setPendingIntentTemplate(R.id.items_list, actionPendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, rv);
appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetId, R.id.items_list);
}
Je ne sais pas ce qu'est un bug est-il. Si quelqu'un sait, veuillez poster votre solution – Trancer