2013-04-09 45 views
0

我有一個小部件,它在單擊時打開一個設置Activity ..現在,如果用戶添加小部件的多個實例並單擊它們,它們都會打開相同的活動與相同的數據和相同的SharedPreferences從同一appwidget的多個實例中打開一個活動的多個實例

在我onReceive()我有

views.setOnClickPendingIntent(R.id.mytv, pendingIntent); 
    appWidgetManager.updateAppWidget(thisAppWidget, views); 

我要的是打開設置活動具有自主SharedPreferences一個單獨的實例... 有沒有辦法?

+0

Android activity follow singleton pattern .... http://stackoverflow.com/a/3399898/1075066 – 2013-04-09 12:10:01

+0

你可以有2個不同的活動/類爲您的目的相同的佈局 – 2013-04-09 12:11:12

+0

@Vincent如果用戶將把n - 小部件的數量?你的想法不適合這個 – Alex 2013-04-09 12:31:52

回答

1

打開它時,您可以使用該活動將appwidget ID傳遞給該活動。 使用appwidget id爲每個窗口小部件實例創建單獨的共享首選項文件,或者只是使用一個共享的pref文件,但需要爲窗口小部件設置不同的設置時,只需創建一些按鍵並追加該按鍵的窗口小部件ID,例如「sort_order _」+ appWidgetId 。當小部件從屏幕上移除時,請不要忘記刪除首選項文件或屬於該appwidget的鍵。