【发布时间】:2012-05-13 03:37:00
【问题描述】:
我正在尝试为 android 手机上已安装的应用程序创建一个带有 chechboxes 的列表视图。 我将图标放在 ArrayList 中,如下所示
packs = new ArrayList<String>(); // a list of all the packages
names = new ArrayList<String>(); // a list of all the apps names
icons = new ArrayList<Drawable>(); // a list of all apps drawable images
List<ApplicationInfo> packages = packageManager.getInstalledApplications(PackageManager.GET_META_DATA);
for (ApplicationInfo packageInfo : packages) {
if ((packageInfo.flags & ApplicationInfo.FLAG_SYSTEM) !=1){ // 'if' is to remove all system applications
packs.add((String) packageInfo.packageName);
names.add((String) packageManager.getApplicationLabel(packageInfo));
icons.add((Drawable) packageManager.getApplicationIcon(packageInfo));
然后把它放在listview上,我用这个。
icon = (ImageView) row.findViewById(R.id.appIcon);
icon.setImageDrawable(icons.get(position));
但是,它强制关闭,问题出在 icon.setImageDrawable(icons.get(position)); 我该如何解决?
【问题讨论】:
-
在 Eclipse 中使用
adb logcat、DDMS 或 DDMS 透视图检查 LogCat 并查看与“强制关闭”相关的堆栈跟踪。特别是,查看引发的异常的名称。如果你在你提到的那一行得到一个NullPointerException,试着清理你的项目——从Eclipse主菜单中的项目>清理,或者ant clean用于命令行构建。 -
有点晚了,但看看这个不错androprogrammer.com/2013/10/…
标签: android listview icons imageview android-applicationinfo