获取已安装的应用
PackageManager packageManager = getPackageManager();
List<PackageInfo> packs = packageManager.getInstalledPackages(0);
ArrayList<HashMap<String, Object>> apps = new ArrayList<HashMap<String, Object>>();
for (int i = 0; i < packs.size(); i++) {
HashMap<String, Object> pack = new HashMap<String, Object>();
pack.put("icon", packs.get(i).applicationInfo.loadIcon(packageManager));
pack.put("appName", packs.get(i).applicationInfo.loadLabel(packageManager));
pack.put("packageName", packs.get(i).packageName);
apps.add(pack);
}
自定义布局
LayoutInflater inflater = LayoutInflater.from(AddActivity.this);
View view = inflater.inflate(R.layout.dialog_apps, null);
ListView listViewApps = (ListView) view.findViewById(R.id.listView_apps);
AppDialogAdapter adapter = new AppDialogAdapter(AddActivity.this, apps);
listViewApps.setAdapter(adapter);
AlertDialog.Builder builder = new AlertDialog.Builder(AddActivity.this);
builder.setView(view);