アプリケーションが起動したら、リストビューと最初のアイテムを使用してアクティビティを呼び出します。私のウィジェットは、onUpdate() の listView に新しい 1 つの項目を追加します。
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.main_widget);
myString = context.getResources().getStringArray(R.array.quotes);
Intent active = new Intent(context, Widget.class);
active.setAction(ACTION_WIDGET_RECEIVER);
Intent archive = new Intent(context, Widget.class);
archive.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
archive.setAction(ACTION_WIDGET_ARCHIVE);
String q = myString[rgenerator.nextInt(myString.length)];
active.putExtra("msg", q);
if (getQuotes(context).size()>1)
remoteViews.setTextViewText(R.id.widget_textview, q);
PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0);
PendingIntent archivePendingIntent = PendingIntent.getBroadcast(context, 0, archive,PendingIntent.FLAG_UPDATE_CURRENT);
remoteViews.setOnClickPendingIntent(R.id.widgetFrameLayout, archivePendingIntent);
Time now = new Time();
now.setToNow();
String mydate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime());
// adding new item to the listView
saveQuote(context, q, mydate);
appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
}
ユーザーがウィジェットを画面に追加すると、もう 1 つの項目が自動的にリストに追加されます。android:updatePeriodMillis
しかし、期間が過ぎてから追加する必要があります。どうすればこれを実装できますか?