Android学习日记(yzy):显示application并调用

来源:互联网 发布:js 字符串一行打印 编辑:程序博客网 时间:2024/06/07 10:31

 一:显示用的控件是listview 和 baseAdapter 。

 二:利用intent-filter过滤,和packageManager调用所有应用。

 三:调用指定包名ComponentName方法启动相应应用


MainActivy :

public class MainActivity extends Activity {    private ListView listView;    private List<ResolveInfo> mApps;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.layout_main);        Intent intent = new Intent(Intent.ACTION_MAIN, null);        intent.addCategory(Intent.CATEGORY_LAUNCHER);        mApps = getPackageManager().queryIntentActivities(intent, 0);        listView = (ListView)findViewById(R.id.listView);        listView.setAdapter(new MyAdapter(this,mApps));        itemClick();    }    public void itemClick(){        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {                ResolveInfo info = mApps.get(position);                String packageName = info.activityInfo.packageName;                String applicationName = info.activityInfo.name;                ComponentName componentName = new ComponentName(packageName, applicationName);                Intent intent = new Intent();                intent.setComponent(componentName);                startActivity(intent);            }        });    }}

BaseAdapter:

public class MyAdapter extends BaseAdapter {    List<ResolveInfo> apps;    Context context;    public MyAdapter(Context context , List<ResolveInfo> apps){        super();        this.context = context;        this.apps = apps;    }    public int getCount(){        return apps.size();    }    public Object getItem(int position){        return apps.get(position);    }    public long getItemId(int position) {        return position;    }    public View getView(int position , View contentView , ViewGroup parents){        ViewHolder viewHolder ;        if(contentView == null){            viewHolder = new ViewHolder();            contentView = LayoutInflater.from(context).inflate(R.layout.view_listview_item,null);            viewHolder.IV_img = (ImageView)contentView.findViewById(R.id.IV_img);            viewHolder.TV_packageName = (TextView)contentView.findViewById(R.id.TV_packageName);            viewHolder.TV_applciationName = (TextView)contentView.findViewById(R.id.TV_applciationName);            contentView.setTag(viewHolder);        }else {            viewHolder = (ViewHolder) contentView.getTag();        }        ResolveInfo appInfo = apps.get(position);        viewHolder.IV_img.setBackground(appInfo.activityInfo.loadIcon(context.getPackageManager()));        viewHolder.TV_applciationName.setText(appInfo.activityInfo.name);        viewHolder.TV_packageName.setText(appInfo.activityInfo.packageName);        return contentView;    }    static class ViewHolder{        public ImageView IV_img;        public TextView TV_packageName;        public TextView TV_applciationName;    }}

0 0
原创粉丝点击