一获取系统应用
packageMgr = getPackageManager();
packageList= packageMgr.getInstalledPackages(0);
for(PackageInfopi:packageList){
PackageInfopackageInfo = pi;
AppInfo tmpInfo = new AppInfo();
tmpInfo.appName =packageInfo.applicationInfo.loadLabel(getPackageManager()).toString();
tmpInfo.appIcon =packageInfo.applicationInfo.loadIcon(getPackageManager());
list.add(tmpInfo);
}
二ListView列表显示
@Override
publicView getView(int arg0, View arg1, ViewGroup arg2) {
//TODO Auto-generated method stub
ViewHolderholder;
//AppInfoappIn = list.get(arg0);
holder= new ViewHolder();
if(null== arg1){
arg1= layoutInflater.inflate(R.layout.activity_main, null);
}
holder.txtName= (TextView)arg1.findViewById(R.id.tv);
holder.image= (ImageView)arg1.findViewById(R.id.imageView);
holder.txtName.setText(list.get(arg0).appName);
holder.image.setImageDrawable(list.get(arg0).appIcon);
//tv.setText(list.get(arg0));
returnarg1;
}
最后附上代码:
package com.example.applistshow;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity{
privateListView listView;
privateTextView tv;
privateMyAdapter adapter;
List<PackageInfo>packageList;
PackageManagerpackageMgr;
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.adapter);
listView= (ListView)findViewById(R.id.listView1);
adapter= new MyAdapter(this,getData());
listView.setAdapter(adapter);
}
publicclass AppInfo{
publicString appName = "";
publicDrawable appIcon = null;
}
publicList<AppInfo> getData(){
List<AppInfo>list = new ArrayList<AppInfo>();
packageMgr= getPackageManager();
packageList= packageMgr.getInstalledPackages(0);
for(PackageInfopi:packageList){
PackageInfopackageInfo = pi;
AppInfo tmpInfo = new AppInfo();
tmpInfo.appName =packageInfo.applicationInfo.loadLabel(getPackageManager()).toString();
tmpInfo.appIcon =packageInfo.applicationInfo.loadIcon(getPackageManager());
list.add(tmpInfo);
}
returnlist;
}
@Override
publicboolean onCreateOptionsMenu(Menu menu) {
//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main,menu);
returntrue;
}
publicclass MyAdapter extends BaseAdapter{
privateContext context;
privateList<AppInfo> list;
privatefinal String inflater = Context.LAYOUT_INFLATER_SERVICE;
privateLayoutInflater layoutInflater;
privateclass ViewHolder{
ImageViewimage;
TextViewtxtName;
}
publicMyAdapter(Context c,List<AppInfo> list){
if(null!=list){
this.list= list;
}else{
list= new ArrayList<AppInfo>();
}
this.context= c;
layoutInflater= (LayoutInflater)context.getSystemService(inflater);
}
@Override
publicint getCount() {
//TODO Auto-generated method stub
returnlist.size();
}
@Override
publicObject getItem(int arg0) {
//TODO Auto-generated method stub
returnnull;
}
@Override
publiclong getItemId(int arg0) {
//TODO Auto-generated method stub
return0;
}
@Override
publicView getView(int arg0, View arg1, ViewGroup arg2) {
//TODO Auto-generated method stub
ViewHolderholder;
//AppInfoappIn = list.get(arg0);
holder= new ViewHolder();
if(null== arg1){
arg1= layoutInflater.inflate(R.layout.activity_main, null);
}
holder.txtName= (TextView)arg1.findViewById(R.id.tv);
holder.image= (ImageView)arg1.findViewById(R.id.imageView);
holder.txtName.setText(list.get(arg0).appName);
holder.image.setImageDrawable(list.get(arg0).appIcon);
//tv.setText(list.get(arg0));
returnarg1;
}
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</ListView>
</RelativeLayout>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:android1="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context=".MainActivity" xmlns:android2="http://schemas.android.com/apk/res/android">
<ImageView
android:id="@+id/imageView"
android:layout_width="50dp"
android:layout_height="50dp"/>
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/hello_world" />
</LinearLayout>