Android AppWidget - 在两个ListView之间进行通信

时间:2014-11-06 19:32:54

标签: android android-appwidget remoteview

所以,我正在编写一个管理资产集合的Android应用程序。我正在尝试编写AppWiget,使得窗口小部件包含两个ListView,一个表示集合列表,另一个表示当前所选列表中的资产。我创建了一个AppWidgetProvider和两个RemoteViewsService / RemoteViewServicesFactory,每个ListView一个。

单击集合ListView时,它会创建一个Bundle并将collection_id传递回Provider。现在,在这一点上,我需要在资产ListView上调用notifyAppWidgetViewDataChanged让它知道要刷新,但我也想将这个collection_id传递给它,以便它知道要获取什么数据(从本地mySql数据库中)。 / p>

是否有允许这种情况的机制?我唯一能想到或发现的是将当前的collection_id存储在数据库或SharedPreferences中,但它看起来有点像hacky。有谁知道更优雅的东西?

1 个答案:

答案 0 :(得分:0)

为什么不将ID添加到第一个列表视图点击触发的意图?在您的第一个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");