ListView、GridView

listView的使用步骤:
 使用listview显示数据列表的步骤:
    1、在布局文件中添加一个listview控件
    2、在代码中找到这个listview控件
    3、创建一个数据适配器为listview填充数据


如何创建listView的数据适配器?
voidsetAdapter(ListAdapter adapter)
Sets the data behind this ListView.

获得当前正在使用的Adapter
ListAdaptergetAdapter()
Returns the adapter currently in use in this ListView.

重点补充:
listview的作用:用来在界面上显示数据列表
MVC:    
          260052031446110.gifModel   Person(自定义的那些item.xml文件   模型)
               260052031446110.gifView      ListView
                    260052031446110.gifControl      Adapter 数据适配器

常用的适配器;
 
    
  1. ArrayAdapter
  2. 使用ArrayAdapterlistview填充数据的步骤:
  3. 1、在布局文件中添加ListView
  4. 2、在代码中初始化这个listview控件
  5. 3、调用listview.setAdapter()填充数据
  6. //使用适配器为listview填充数据
  7. //new ArrayAdapter:context 上下文,resourceId 条目布局文件的资源ID,object[] 要显示的数据
  8. lv.setAdapter(new ArrayAdapter<String>(this, R.layout.item, new String[]{"王菲","谢霆锋","张柏芝","李亚鹏"}));
 
     
  1. SimpleAdapter
  2. 使用ArrayAdapterlistview填充数据的步骤:
  3. 1、在布局文件中添加ListView
  4. 2、在代码中初始化这个listview控件
  5. 3、调用listview.setAdapter()填充数据
  6. //使用适配器为listview填充数据
  7. //new SimpleAdapter:context 上下文,resourceId 条目布局文件的资源ID,String[] 要显示的列名,int[] 指定列显示在item布局文件的哪个控件上
  8. lv.setAdapter(new SimpleAdapter(this, data, R.layout.item, new String[]{"id","name"}, new int[]{R.id.tv_id,R.id.tv_name}));
  9. 关联:条目的布局文件(这种简单的适配器只适用于这种布局)



自定义适配器:用法和下面的 GridView差不多,可以参考下面的代码

    

GridView的使用实例:
 
    
  1. GridView gv_home =(GridView)findViewById(R.id.gv_home);
  2. gv_home.setAdapter(new MyAdapter());

给item添加点击事件:
 
     
  1. gv_home.setOnItemClickListener(new OnItemClickListener() {
  2. //点击item时调用这个方法
  3. @Override
  4. public void onItemClick(AdapterView<?> parent, View view,
  5. int position, long id) {
  6. switch (position) {
  7. case 0://手机防盗
  8. //检查之前是否设置了密码,如果设置了就弹出输入密码的对话框,
  9. String password = sp.getString("password", "");
  10. if(TextUtils.isEmpty(password)){
  11. //显示设置密码的对话框
  12. showSetupPasswordDialog();
  13. }else{
  14. //显示输入密码的对话框
  15. showEnterPasswordDialog();
  16. }
  17. break;
  18. case 8://设置中心
  19. intent = new Intent(HomeActivity.this,SettingsActivity.class);
  20. startActivity(intent);
  21. break;
  22. default:
  23. break;
  24. }
  25. }
  26. });


自定义适配器:
 
     
  1. private class MyAdapter extends BaseAdapter{
  2. @Override//注:九宫格的数目
  3. public int getCount() {
  4. return names.length;
  5. }
  6. @Override//注:每有一个条目(item)在屏幕上显示都会调用该方法
  7. public View getView(int position, View convertView, ViewGroup parent) {
  8. View view;
  9. if(convertView == null){
  10. view = View.inflate(HomeActivity.this, R.layout.gv_home_item, null);
  11. }else{
  12. view = convertView;
  13. }
  14. ImageView iv_icon = (ImageView) view.findViewById(R.id.iv_icon);
  15. TextView tv_name = (TextView) view.findViewById(R.id.tv_name);
  16. iv_icon.setImageResource(ids[position]);
  17. tv_name.setText(names[position]);
  18. return view;
  19. }
  20. @Override//注:得到指定位置的item
  21. public Object getItem(int position) {
  22. // TODO Auto-generated method stub
  23. return null;
  24. }
  25. @Override//得到指定位置item的id值
  26. public long getItemId(int position) {
  27. // TODO Auto-generated method stub
  28. return 0;
  29. }
  30. }






转载于:https://www.cnblogs.com/candledragle/p/4249299.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值