“`
//主页面
public class MainActivity extends ActionBarActivity {
private ListView lv;
private List lists;
private MyAdapter adapter;
// private OnAppClickListener mAppClickedCallback;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// mAppClickedCallback = (OnAppClickListener) MainActivity.this;
lv = (ListView) findViewById(R.id.lv);
lists = new ArrayList<PInfo>();
List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
for (int i = 0; i < packs.size(); i++) {
PackageInfo p = packs.get(i);
PInfo newInfo = new PInfo();
newInfo.setVersionName(p.versionName);
newInfo.setVersionCode(p.versionCode);
newInfo.setpName(p.packageName);
newInfo.setAppName(p.applicationInfo.loadLabel(getPackageManager())
.toString());
newInfo.setIcon(p.applicationInfo.loadIcon(getPackageManager()));
if ((p.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
lists.add(newInfo);
}
}
adapter = new MyAdapter(this, lists);
lv.setAdapter(adapter);
adapter.notifyDataSetChanged();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
// Intent intent = new Intent();
// intent = MainActivity.this.getPackageManager()
// .getLaunchIntentForPackage(
// lists.get(position).getpName());
// startActivity(intent);
// Intent intent=new Intent(MainActivity.this,Setting.class);
// startActivity(intent);
}
});
}
}
“//适配器
public class MyAdapter extends BaseAdapter {
private Context context;
private List lists;
public MyAdapter(Context context, List<PInfo> lists) {
super();
this.context = context;
this.lists = lists;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return lists.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return lists.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@SuppressLint("NewApi")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder viewHolder = null;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = LayoutInflater.from(context).inflate(R.layout.item,
null);
viewHolder.iv = (ImageView) convertView.findViewById(R.id.iv);
viewHolder.tv = (TextView) convertView.findViewById(R.id.tv);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
PInfo pInfo = lists.get(position);
String appName = pInfo.getAppName();
Drawable icon = pInfo.getIcon();
viewHolder.iv.setBackground(icon);
viewHolder.tv.setText(appName);
return convertView;
}
class ViewHolder {
ImageView iv;
TextView tv;
}
}
`
//实体类
public class PInfo {
private String appName;
private String pName;
private String versionName;
private int versionCode;
private Drawable icon;
public Drawable getIcon() {
return icon;
}
public void setIcon(Drawable icon) {
this.icon = icon;
}
public String getAppName() {
return appName;
}
public void setAppName(String appName) {
this.appName = appName;
}
public String getpName() {
return pName;
}
public void setpName(String pName) {
this.pName = pName;
}
public String getVersionName() {
return versionName;
}
public void setVersionName(String versionName) {
this.versionName = versionName;
}
public int getVersionCode() {
return versionCode;
}
public void setVersionCode(int versionCode) {
this.versionCode = versionCode;
}
}
`