Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-从意图过滤器返回的组合列表_Android_Android Intent - Fatal编程技术网

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);