Android-从意图过滤器返回的组合列表
我会试着把这个缩短。 我想获得设备上安装的Android-从意图过滤器返回的组合列表,android,android-intent,Android,Android Intent,我会试着把这个缩短。 我想获得设备上安装的浏览器的列表,以及处理地图的应用程序列表,例如谷歌地图、MapDroyd。我想在一个自定义对话框上显示这两个列表,并根据所单击的列表,使用提供的坐标和相关URI加载应用程序 要加载浏览器,只需传入一个http://URI,使用地图应用程序,就可以传入geo:lat,lon。我的问题是,将它们合并到同一个列表中 以下是我目前的代码: final PackageManager packageManager = activity.getPackageManag
浏览器的列表,以及处理地图的应用程序列表,例如谷歌地图、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);
final-PackageManager-PackageManager=activity.getPackageManager();
//这将获得所有浏览器
最后一个字符串browserURI=httpURL+lat+“,”+lon;
Intent-browserint=新的Intent(Intent.ACTION_视图,Uri.parse(browserURI));
最终列表browserList=packageManager.QueryInputActivities(BrowserContent,0);
//这将获取所有地图应用程序:
最终字符串mapUri=“geo:“+lat+”,“+lon;
Intent mapIntent=新的Intent(Intent.ACTION_视图,Uri.parse(mapUri));
最终列表mapList=packageManager.QueryInputActivities(MapContent,0);
所以这里我有browserList
和mapList
,我想它们包含了我想要显示的所有应用程序的列表。问题是如何将它们组合成一个通用的第三个列表。它像ListView.add()
这样简单吗
理想情况下,在最后,我希望它弹出应用程序,如果用户单击在浏览器中查看,它将打开链接,如果用户选择在地图应用程序中查看,它将在指定坐标处启动该应用程序
谢谢您的帮助。ListView需要ListAdapter。ListAdapter为ListView提供数据。构造ListAdapter时,构造函数参数之一是数据数组
如果在将数据放入ListAdapter后需要更新ListView,则需要首先更新之前传入的数组,然后在ListAdapter上调用notifyDataSetChanged(),您可以从ListView获取该数组
如果在创建ListView之前创建了两个列表,则要合并这两个列表,可以执行以下操作:
browserList.addAll(mapList);