« Android LiveCD | トップページ | 宮崎名物発 肉巻きおにぎり »

Android AppWidget(ウィジェット)

AppWidget(ウィジェット)についてメモ。

ウィジェットを配置後、クリックして設定画面を表示し、内容を変更したい。

ある本のサンプルプログラムを参考に作成したところ、次の事象となった。
 1個配置 → 正常に変更できたので問題なし
 2個以上配置 → 全て最後に配置した内容が変更されてしまった

ウィジェット上のボタンにPendingIntentを設定する箇所。
---
Intent intent=new Intent();
intent.setAction(CLICK_CONF);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetID);
PendingIntent pending
 =PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.appwidget_btn, pending);
---

呼び先のActivityではputExtraで設定したEXTRA_APPWIDGET_IDの値が全て最後に配置したappWidgetIDが取得された。
ボタンに登録したPendingIntentがすべて最後に配置したものになっているのか???
なぜだろう???

理由は調べきれていないが、次のことをしたら問題が解消した。
getActivityの第二引数を一律0から、異なる値(今回はappWidgetIDを使用)にした。
---
PendingIntent pending
 =PendingIntent.getActivity(context, appWidgetID, intent, PendingIntent.FLAG_UPDATE_CURRENT);
                        ★              
---

とりあえずメモを残しておく。

|

« Android LiveCD | トップページ | 宮崎名物発 肉巻きおにぎり »

Android」カテゴリの記事