我不是 Java/Android 方面的专家,但我仍在努力。
我只是想知道您使用图标和文本制作自定义 ListView。
list (listView1) 是我想要图标的 ListView...
这是我的代码:
list = (ListView) findViewById(R.id.listView1);
adapter = new ArrayAdapter<String>(this,
R.layout.custom,
R.id.app_name,
listItems);
list.setAdapter(adapter);
list2 = (ListView) findViewById(R.id.listView2); adapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listItems2); list2.setAdapter(adapter2);
Directory directory = new Directory(Environment.getExternalStorageDirectory()); File[] files = directory.getFiles("*.apk", true);
for (int i = 0; i < files.length; i++) {
String apkPath = files[i].getPath() + files[i].getName();
listItems2.add(apkPath); adapter.notifyDataSetChanged();
PackageManager pm = getPackageManager();
PackageInfo pi = pm.getPackageArchiveInfo(apkPath, 0);
pi.applicationInfo.sourceDir = apkPath;
pi.applicationInfo.publicSourceDir = apkPath;
String AppName = (String)pi.applicationInfo.loadLabel(pm);
//Drawable APKicon = pi.applicationInfo.loadIcon(pm);
//<Here i get error when i try to change icon.>
ImageView icon = (ImageView) findViewById(R.id.app_icon);
icon.setImageResource(R.drawable.about);
//<>
listItems.add(AppName);
}
这是我的“custom.xml”代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" >
<ImageView android:id="@+id/app_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" />
<TextView android:id="@+id/app_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_toRightOf="@+id/app_icon" android:text="" android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>