解雇一个意图,但我似乎无法找到如何获取包名称

时间:2011-05-01 04:30:07

标签: android android-intent package

这是我目前的代码:

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,供用户从列表中选择一个应用程序。现在,在我的Listener上,我需要获取包名称。有没有一种简单的方法从我已有的代码中获取包名?或者我需要创建另一个包名列表吗?

我对于提出下一个问题感到愚蠢,但有没有办法可以从应用名称开始一个意图?我已经拥有了它,这将更容易。

感谢。

2 个答案:

答案 0 :(得分:0)

您是否可以从Activity的上下文调用getPackageName()?

答案 1 :(得分:0)

好的实现你想要的,你需要在你的代码中做一些改变。

将包名称作为appNamesList的一部分,如

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

所以当你使用

获取听众的项目时
listView.getAdapter().getItem(i);

您将获得包名称作为此项目的一部分。

现在您可以根据需要使用它。

如果您仍然感到困惑或有任何其他疑问,请与我联系。