public class AppInfo{ public String appName = null;//应用程序名 public Drawable icon = null;//应用程序图片 }
import java.util.List; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class ListViewAdapter extends BaseAdapter{ private Context context; private List<AppInfo> appList; public ListViewAdapter(Context context, List<AppInfo> appList) { this.context = context; this.appList = appList; } @Override public int getCount() { // TODO Auto-generated method stub return appList.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return appList.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View view = null; ViewHolder holder = null; LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); if (convertView == null) { view = inflater.inflate(R.layout.list_item, null); holder = new ViewHolder(view); view.setTag(holder); } else { view = convertView; holder = (ViewHolder) convertView.getTag(); } AppInfo appInfo = (AppInfo)getItem(position); holder.tvInfo.setText(appInfo.appName); holder.imgInfo.setImageDrawable(appInfo.icon); return view; } class ViewHolder { TextView tvInfo; ImageView imgInfo; public ViewHolder(View view) { tvInfo = (TextView) view.findViewById(R.id.tv01); imgInfo = (ImageView) view.findViewById(R.id.img01); } } }
import android.app.Activity; import android.app.AlertDialog; import android.content.pm.PackageInfo; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageButton; import android.widget.ListView; import java.util.*; public class MyActivity extends Activity { private ListView listView = null; private List<AppInfo> appList = new ArrayList<AppInfo>(); private List<PackageInfo> manager = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); listView = (ListView) findViewById(R.id.mylist); manager = getPackageManager().getInstalledPackages(0); for (int i = 0; i < manager.size(); i++) { PackageInfo packageInfo = manager.get(i); //应用程序信息存储到appinfo里 AppInfo appInfo = new AppInfo(); appInfo.appName = packageInfo.applicationInfo.loadLabel(getPackageManager()).toString(); appInfo.icon = packageInfo.applicationInfo.loadIcon(getPackageManager()); appList.add(appInfo); } ListViewAdapter adapter = new ListViewAdapter(this, appList); listView.setAdapter(adapter); } }
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ImageView android:id="@+id/img01" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TextView android:id="@+id/tv01" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ListView android:id="@+id/mylist" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>