2014-11-06 42 views
1

因此,我正在編寫一個管理資產集合的Android應用程序。我正在嘗試編寫一個AppWiget,這個小部件包含兩個ListView,一個表示集合的列表,另一個表示當前選定列表中的資產。我爲每個ListView創建了一個AppWidgetProvider和兩個RemoteViewsService/RemoteViewServicesFactory。Android AppWidget - 在兩個ListView之間進行通信

當集合ListView被點擊時,它創建一個Bundle並將collection_id傳回給Provider。現在在這一點上,我需要在資產ListView上調用notifyAppWidgetViewDataChanged以讓它知道刷新,但我也想將這個collection_id傳遞給它,以便它知道要獲取哪些數據(從本地mySql數據庫中取出)。

有沒有一種機制允許這樣做?我能想到或發現的唯一事情就是將當前的collection_id存儲在數據庫或SharedPreferences中,但看起來有點冒失。有誰知道更優雅的東西?

回答

0

爲什麼不將id添加到通過點擊第一個listview觸發的意圖?在你的第一個RemoteViewServicesFactory

Bundle extras = new Bundle(); 
extras.putInt("ID", id); 
Intent fillInIntent = new Intent(); 
fillInIntent.putExtras(extras); 
rv.setOnClickFillInIntent(R.id.widget_item, fillInIntent); 

然後在第二RemoteViewServicesFactory,你會像這樣閱讀:

Int id = extras.getInt("ID"); 
相關問題