Увольнение, но я не могу понять, как получить имя пакета - PullRequest
0 голосов
/ 01 мая 2011

Вот мой текущий код:

public ListAdapter createAdapter() {
    appNames = new String[] { "" };
    appNamesList = new ArrayList<String>();

    final PackageManager pm = getPackageManager();      
    Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
    mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
    packs = pm.queryIntentActivities(mainIntent, 0);
    Collections.sort(packs, new ResolveInfo.DisplayNameComparator(pm));

    for (int i = 0; i < packs.size(); i++) {
        appNamesList.add(packs.get(i).loadLabel(pm).toString());
    }

    appNames = maker(appNamesList);     
    ListAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, appNames);        
    return adapter;
}

В настоящее время у меня есть этот код, обновляющий ListView для пользователя, чтобы выбрать приложение из списка.Теперь в моем Слушателе мне нужно получить имя пакета.Есть ли простой способ получить имя пакета из кода, который у меня уже есть?Или мне нужно будет создать еще один список имен пакетов?

Я чувствую себя глупо, задавая следующий вопрос, но есть ли способ, которым вы можете начать намерение только с имени приложения?У меня уже есть это, и это будет намного проще.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 01 мая 2011

Хорошо, чтобы добиться того, чего вы хотите, вам нужно внести некоторые изменения в ваш код.

Сделать имя пакета частью вашего appNamesList, например

appNameList = ArrayList<HashMap<String,String>>();

, чтобы при получении элементаваш слушатель, используя

listView.getAdapter().getItem(i);

, вы получите имя пакета как часть этого элемента.

теперь вы можете использовать его как хотите.

Если вы все ещезапутаться или у вас есть другие сомнения, дайте мне знать.

0 голосов
/ 01 мая 2011

Вы можете вызывать getPackageName () из контекста Activity ?

...