ListView(1)+intent获得应用
来源:互联网 发布:数据库系统概论王珊ppt 编辑:程序博客网 时间:2024/06/06 10:46
***ListView初步基础***
在底部增加视图addFooterView(view);
最简单的listView点击每个item跳转界面
mListView = (ListView) findViewById(R.id.list_view_demo);ArrayList<ActivityItem> activityItems = new ArrayList<>();activityItems.add(new ActivityItem("1. 应用列表", AppListActivity.class));activityItems.add(new ActivityItem("2. 异步请求数据列表", RequestDataActivity.class));activityItems.add(new ActivityItem("3. 模仿IM聊天布局", ChatActivity.class));mListView.setAdapter(new MainListAdapter(MainActivity.this,activityItems ));
getinfo方法
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); return getPackageManager().queryIntentActivities(mainIntent, 0);
在adapter里面获取当前视图
LayoutInflater layoutInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);View headerView = layoutInflater.inflate(R.layout.header_list_demo, null);viewHolder.nameTextView = (TextView) convertView.findViewById(R.id.title_text_view);
在adapter里面重复利用ViewHolder
if(convertView == null){ viewHolder = new ViewHolder(); convertView = layoutInflater.inflate(R.layout.item_demo_list, null); // 获取控件 viewHolder.nameTextView = (TextView) convertView.findViewById(R.id.title_text_view); viewHolder.avatarImageView = (ImageView)convertView.findViewById(R.id.icon_image_view); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); }
获取应用名称图片
viewHolder.nameTextView.setText(mInfos.get(position).activityInfo.loadLabel(mContext.getPackageManager())); viewHolder.avatarImageView.setImageDrawable(mInfos.get(position).activityInfo.loadIcon(mContext.getPackageManager()));
在getView里面设置每个item的点击事件
convertView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ResolveInfo info = mInfos.get(position); //该应用的包名 String pkg = info.activityInfo.packageName; //应用的主activity类 String cls = info.activityInfo.name; ComponentName componet = new ComponentName(pkg, cls); Intent intent = new Intent(); intent.setComponent(componet); startActivity(intent); } });
全部代码
public class AppListActivity extends AppCompatActivity{ private ListView mListView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mListView = (ListView) findViewById(R.id.list_view_demo); LayoutInflater layoutInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); View headerView = layoutInflater.inflate(R.layout.header_list_demo, null); mListView.addHeaderView(headerView); List<ResolveInfo> infos = getAppInfos(); mListView.setAdapter(new AppListAdapter(this, infos)); } private List<ResolveInfo> getAppInfos() { Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); return getPackageManager().queryIntentActivities(mainIntent, 0); } public class AppListAdapter extends BaseAdapter{ private Context mContext; private List<ResolveInfo> mInfos; public AppListAdapter(Context context, List<ResolveInfo> infos) { mContext = context; mInfos = infos; } @Override public int getCount() { return mInfos.size(); } @Override public Object getItem(int position) { return mInfos.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; LayoutInflater layoutInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); if(convertView == null){ viewHolder = new ViewHolder(); convertView = layoutInflater.inflate(R.layout.item_demo_list, null); // 获取控件 viewHolder.nameTextView = (TextView) convertView.findViewById(R.id.title_text_view); viewHolder.avatarImageView = (ImageView) convertView.findViewById(R.id.icon_image_view); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } // 和数据之间进行绑定 viewHolder.nameTextView.setText(mInfos.get(position).activityInfo.loadLabel(mContext.getPackageManager())); viewHolder.avatarImageView.setImageDrawable(mInfos.get(position).activityInfo.loadIcon(mContext.getPackageManager())); convertView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ResolveInfo info = mInfos.get(position); //该应用的包名 String pkg = info.activityInfo.packageName; //应用的主activity类 String cls = info.activityInfo.name; ComponentName componet = new ComponentName(pkg, cls); Intent intent = new Intent(); intent.setComponent(componet); startActivity(intent); } }); return convertView; } class ViewHolder { ImageView avatarImageView; TextView nameTextView; } }
阅读全文
0 0
- ListView(1)+intent获得应用
- 获得所有安装的应用,复杂ListView的显示
- android--intent的应用1
- intent 应用
- Intent 应用
- Intent应用
- Intent 应用
- intent应用
- intent listview gridview 笔记
- Android入门——Intent、Bundle的使用和ListView的应用
- Intent,Android 应用核心探秘(1)
- ListView应用
- android Intent常见应用
- Android中Intent应用
- Intent常规应用实例
- Intent应用实例
- Intent应用详解
- Intent应用详解
- STM32伺服编码器接口
- Oracle 12c 基于PDB种子数据库创建PDB
- Android-小知识
- Python语法第5讲:字典
- linux中的管道通信
- ListView(1)+intent获得应用
- ConcurrentLinkedQueue
- 基于PHP的微信红包
- PHP处理上传文件名
- 守护进程
- 手机移动端的一些布局,视口知识的分享
- egret连续点击事件的实现
- Stack
- php-8