这是我目前的代码:
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上,我需要获取包名称。有没有一种简单的方法从我已有的代码中获取包名?或者我需要创建另一个包名列表吗?
我对于提出下一个问题感到愚蠢,但有没有办法可以从应用名称开始一个意图?我已经拥有了它,这将更容易。
感谢。
答案 0 :(得分:0)
您是否可以从Activity的上下文调用getPackageName()?
答案 1 :(得分:0)
好的实现你想要的,你需要在你的代码中做一些改变。
将包名称作为appNamesList的一部分,如
appNameList = ArrayList<HashMap<String,String>>();
所以当你使用
获取听众的项目时listView.getAdapter().getItem(i);
您将获得包名称作为此项目的一部分。
现在您可以根据需要使用它。
如果您仍然感到困惑或有任何其他疑问,请与我联系。