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
- Android学习日记(yzy):显示application并调用
- Android学习日记(yzy):intent传递的多种数据类型
- Android学习日记(yzy):Fragment与VierPager简单实现
- Android学习日记(yzy):Notification的简单运用
- Android学习日记(yzy): Accessibility辅助功能
- Android学习日记(yzy):Service的两种启动
- Android学习日记(yzy):集成布局和滑动效果的实现
- Android学习日记(yzy):opengl 绘制2d图形 基本框架
- Android学习日记(yzy):Broadcast Receiver的注册和发送
- Android学习日记(yzy):通过Timer类和Handler机制实现gif图片
- C语言学习日记(yzy):socket(TCP)网络连接
- 菜鸟日记(yzy) 微信公众号网页的开发基础(微信接口调用)
- 菜鸟日记(yzy) 微信公众号网页的开发-websocket
- android调用摄像头拍照并显示
- Android学习日记(一)
- Android学习日记(2)
- Android学习日记(1)
- Android学习日记(2)
- 4.3.5 数组深入练习
- Planar reflection clipplane bug on Metal.
- struts2工作原理
- Component 与 Directive定义的区别
- 堆排序heapSort
- Android学习日记(yzy):显示application并调用
- 城市列表导入本地数据库
- mongodb与mysql相比的优缺点
- D. Dreamoon and Sets(Codeforces Round #272)
- butterknife 注解成功但运行报空指针错误
- APP增量更新的实现
- (JAVA+TESTNG 三)Eclipse+TestNG搭建接口自动化测试框架
- 常用的正则表达式
- AIDL自动生成源码分析以及根据自动生成的源码来自定义类实现IPC