Android -合并从Intent过滤器返回的列表



我尽量长话短说。我想得到一个列表的browsers安装在设备上,以及应用程序的列表来处理maps,如谷歌地图,MapDroyd。我想在一个自定义对话框中显示这两个列表,并根据单击哪个,加载具有提供的坐标和相关URI的应用程序。

要加载浏览器,您只需要传入一个http:// URI,对于地图应用程序,您传入geo:lat,lon。我的问题是,把它们合并到同一个列表中。

下面是目前为止的代码:
final PackageManager packageManager = activity.getPackageManager();      
//This gets all the browsers
final String browserURI = httpURL+lat+","+lon;
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(browserURI));
final List<ResolveInfo> browserList = packageManager.queryIntentActivities(browserIntent, 0);
// This gets all the Map apps:
final String mapUri = "geo:"+lat+","+lon;
Intent mapIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(mapUri));
final List<ResolveInfo> mapList = packageManager.queryIntentActivities(mapIntent, 0);

这里我有browserListmapList,我认为它们包含了我想要显示的所有应用程序的列表。问题是如何将它们组合成一个共同的第三个列表。它像ListView.add()一样简单吗?

理想情况下,在最后,我希望它弹出应用程序,如果用户点击在浏览器中查看它,它将打开http://mysite链接,如果他们选择在地图应用程序中查看它,那么它将在指定的坐标启动该应用程序。

谢谢你的帮助

ListView需要一个ListAdapter。ListAdapter为ListView提供数据。当您构造ListAdapter时,其中一个构造函数参数是数据数组。

如果你需要更新ListView后,你已经把数据在ListAdapter,你需要首先更新数组你已经传递在之前,然后调用notifyDataSetChanged()在你的ListAdapter,你可以从ListView。

如果你在创建ListView之前创建了两个list,那么你可以这样做:

browserList.addAll(mapList);

最新更新