Android学习日记(yzy):显示application并调用
2016-07-19 10:14
477 查看
一:显示用的控件是listview 和 baseAdapter 。
二:利用intent-filter过滤,和packageManager调用所有应用。
三:调用指定包名ComponentName方法启动相应应用
MainActivy :
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; } }
相关文章推荐
- android ExpandableListView三级菜单的使用
- AppCan应用开发之插件实践篇-支付插件
- android 的自我学习
- Android学习笔记031之Fragment
- android.content.res.Resources$NotFoundException: Unable to find resource ID 0#0xffffffff
- -[NSBundle initWithURL:]: nil URL argument'
- Android自定义View的实现方法,带你一步步深入了解View(四)
- APP自动更新技术方案
- iOS中的round/ceil/floorf函数略解
- Android视图状态及重绘流程分析,带你一步步深入了解View(三)
- 透明色的16进制
- Android视图绘制流程完全解析,带你一步步深入了解View(二)
- NG 1.5 Version应用程序入口Component写法
- android 实现Activity的右滑返回效果
- AndroidTextView在xml初始化的问题
- Android与js交互的设置
- 微信支付宝支付密码输入框 PassWordEditView
- 用textView 画圆 更换颜色 动态添加到布局里面
- Android好用且常用的插件及工具
- Android自定义图片自动轮播控件:imagecycleview