/ / Android - Комбиниране на списъци, върнати от Intent filter - android, android-intent

Android - комбиниране на списъци, върнати от Intent filter - android, android-intent

Ще се опитам да направя това кратко. Искам да получа списък browsers инсталирани на устройството, както и списък с приложения, които да се обработват maps, напр. Google Карти, MapDroyd. Искам да показвам двата списъка в персонализиран диалогов прозорец и в зависимост от това кой е кликнали, заредете приложението с предоставените координати и съответния URI.

За да заредите браузъра, просто трябва да преминете в a 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);

Така че тук имам browserList и mapList които според мен съдържа списък с всички приложения, които искам да покажа. Проблемът е как да ги комбинираме в общ трети списък. Дали това е просто като ListView.add() или нещо?

В идеалния случай, в края на краищата, искам да изскочи приложенията и ако потребителят кликне, за да го прегледа в браузъра си, ще отвори http://mysite и ако изберат да го видят в приложение за карти, то ще стартира това приложение на посочените координати.

Благодаря за помощта.

Отговори:

1 за отговор № 1

ListView изисква ListAdapter. ListAdapter е това, което предоставя данните в ListView. Когато конструирате ListAdapter, един от параметрите на конструктора е масивът от данни.

Ако трябва да актуализирате ListView, след като сте го направиливече сте поставили данните в ListAdapter, за да актуализирате по-рано масива, който сте минали, и след това да се обадите notificationDataSetChanged () на вашия ListAdapter, който можете да получите от ListView.

Ако създавате и двата списъка, преди да създавате списъка си с списъци, след това да комбинирате двата списъка, които можете да направите:

browserList.addAll(mapList);