Adnroid组件的使用:ListView与GridView
来源:互联网 发布:攻壳机动队95 2.0知乎 编辑:程序博客网 时间:2024/05/22 00:08
Adnroid中ListView(列表视图)与GridView(网格视图)的使用
1、ListView的使用
1.1
ListView的功能就像之前的Spinner、AutoCompleteTextView中添加额外的资源文件一样,可以把其他资源文件的信息作为一个整体加载到ListView的子列表中。1)、新建一个listview.xml文件,文件中只有一个ListView组件,组件中的信息需要通过另外一个布局文件加载到ListView中,代码如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ListView android:id="@+id/lv_showlistviewitem" android:layout_width="match_parent" android:layout_height="wrap_content"> </ListView></LinearLayout>
2)、新建listview_extra_layou.xml,代码如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ImageView android:id="@+id/iv_showimage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/d1"/> <TextView android:id="@+id/tv_showtextviewinfo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/app_name"/> </LinearLayout>
3)、新建Activity类,ListViewDemoActivity,完整代码如下:package com.example.basiccomponent2;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.os.Bundle;import android.widget.ListView;import android.widget.SimpleAdapter;public class ListViewDemoActivity extends Activity { private ListView lv_showlistviewitem = null; private List<Map<String,String>> list = new ArrayList<Map<String,String>>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.listview_layout); lv_showlistviewitem = (ListView)super.findViewById(R.id.lv_showlistviewitem); //获得listview_extra_layout.xml各组件id名 String id_name[] ={ "iv_showimage", "tv_showtextviewinfo" }; //获得listview_extra_layout.xml中id名对应的R文件id int id_rid[] = { R.id.iv_showimage, R.id.tv_showtextviewinfo }; //定义图片数组数据 int images[] = { R.drawable.d1, R.drawable.d2, R.drawable.d3 }; //定义数组数据 String info[] = { "文本1","文本2" }; //循环把图片和文本加入到map集合中,再把map集合数据添加到list集合中。 for(int i = 0; i<info.length;i++){ Map<String,String> map =new HashMap<String,String>(); map.put("iv_showimage", images[i]+""); map.put("tv_showtextviewinfo", info[i]); list.add(map); } //通过adpter加载数据 SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.listview_extra_layout, id_name, id_rid); //组件设置适配器 lv_showlistviewitem.setAdapter(adapter); }}
4)、运行效果:2、GridView的使用:
2.1、新建布局文件:
1)、新建布局文件gridview_layout.xml,代码如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <GridView android:id="@+id/gv_showinfo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:numColumns="3"/></LinearLayout>
2)、建立GridView的item布局文件gridview_item_layout.xml,代码如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" > <ImageView android:id="@+id/iv_showgvitemimg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher"/> <TextView android:id="@+id/tv_showgvitemtxt" android:layout_width="wrap_content" android:layout_height="wrap_content"/></LinearLayout>
3)、建立vo类GridViewStudent,用于保存图片和名字,代码如下:package com.example.entity;public class GridViewStudent { private int photo; // 存放学生图片id private String name; // 存放学生姓名 /* * 无参构造方法 */ public GridViewStudent(){} /* * 全参构造方法 */ public GridViewStudent(int photo,String name){ this.photo = photo; this.name = name; } /* * gettter方法 */ public int getPhoto() { return photo; } /* * settter方法 */ public void setPhoto(int photo) { this.photo = photo; } /* * gettter方法 */ public String getName() { return name; } /* * settter方法 */ public void setName(String name) { this.name = name; }}
4)、建立Adapter类GridViewDemoAdapter类,代码如下:package com.example.adapter;import java.util.List;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.example.activity.R;import com.example.entity.GridViewStudent;public class GridViewDemoAdapter extends BaseAdapter { private Context context; //定义上下文属性(即传过来的GridViewDemoActivity类) private int resource; //定义资源文件(即传过来的gridviewdemo_item_layout.xml文件) private List<GridViewStudent> list; //定义list集合,类型为GridViewStudent private LayoutInflater inflater; //定义装载布局 /* * 全参构造方法,为类中的属性初始化 */ public GridViewDemoAdapter(Context context,int resource,List<GridViewStudent> list){ this.context = context; this.resource = resource; this.list = list; inflater = LayoutInflater.from(context);//初始化LayoutInflater } /* * 获取item个数 */ @Override public int getCount() { //如果list集合不为空,则返回集合大小,否则返回0 if(list != null){ return list.size(); } return 0; } /* * 获取item */ @Override public Object getItem(int position) { return list.get(position); } /* * 获取itemid */ @Override public long getItemId(int position) { return 0; } /* *返回一个布局 */ @Override public View getView(int position, View convertView, ViewGroup parent) { if(convertView==null){ convertView = inflater.inflate(resource, null); } TextView tv_showgvitemtxt = (TextView)convertView.findViewById(R.id.tv_showgvitemtxt); ImageView iv_showgvitemimg = (ImageView)convertView.findViewById(R.id.iv_showgvitemimg); tv_showgvitemtxt.setText(list.get(position).getName()); iv_showgvitemimg.setImageResource(list.get(position).getPhoto()); return convertView; }}
5)、新建Activity类GridViewDemoActivtiy,代码如下:package com.example.activity;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.widget.GridView;import com.example.adapter.GridViewDemoAdapter;import com.example.entity.GridViewStudent;public class GridViewDemoActivtiy extends Activity { private GridView gv_showinfo = null; //声明对象 private List<GridViewStudent> list = new ArrayList<GridViewStudent>();// 声明list集合,用于存储数据 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.gridviewdemo_layout);// 设置容器, gv_showinfo = (GridView) super.findViewById(R.id.gv_showinfo);// 初始化gridview //往list中添加值 GridViewStudent gvs1 = new GridViewStudent(R.drawable.ic_launcher, "张三"); list.add(gvs1); GridViewStudent gvs2 = new GridViewStudent(R.drawable.ic_launcher, "李四"); list.add(gvs2); GridViewStudent gvs3 = new GridViewStudent(R.drawable.ic_launcher, "王五"); list.add(gvs3); GridViewStudent gvs4 = new GridViewStudent(R.drawable.ic_launcher, "赵六"); list.add(gvs4); GridViewStudent gvs5 = new GridViewStudent(R.drawable.ic_launcher, "王二"); list.add(gvs5); GridViewStudent gvs6 = new GridViewStudent(R.drawable.ic_launcher, "钱七"); list.add(gvs6); //设置Adapter GridViewDemoAdapter gridViewAdapter = new GridViewDemoAdapter( GridViewDemoActivtiy.this, R.layout.gridviewdemo_item_layout, list); gv_showinfo.setAdapter(gridViewAdapter); }}
6)、运行效果:
- Adnroid组件的使用:ListView与GridView
- ListView、GridView的使用
- GridView组件的使用
- GridView组件的使用
- GridView组件的使用
- GridView组件的使用
- RecyclerView的使用<注:ListView与GridView 的升级版>
- Adnroid——ListView与Adapter
- ListView组件的使用
- ListView组件的使用
- ListView组件的使用
- ListView组件的使用
- ListView与GridView的用法
- ListView,GridView与ScrollView嵌套使用的故事
- ListView、GridView、RecyclerView的使用
- GridView、ListView的简单使用
- Adnroid学习笔记:Intent与<intent-filter>的使用
- Android GridView组件的使用
- 黑马程序员------.Net基础之序列化和反序列化
- 黑马程序员_05 java异常处理总结
- (-):wav文件转化为txt文件
- poj 2387 单源最短路问题
- 黑马程序员_关于递归那档子事
- Adnroid组件的使用:ListView与GridView
- 利用sshpass解决ssh与scp交互密码验证,tee -a 写日志与终端
- 管理目标发现
- 开源框架
- 技术传播梦
- hdu 1520 Anniversary party(树dp)
- 黑马程序员------.Net基础之值类型和引用类型
- NEFU 117 素数个数的位数(数论)
- VRML(Virtual Reality Modeling Language)即虚拟现实建模语言