使用gridView来制作列表
2018-12-19 本文已影响0人
晨曦诗雨
实现的需求就是:
在页面显示图标和文字,类似于这样的页面
image.png
第一步页面的布局
<GridView
android:layout_marginTop="10dp"
android:id="@+id/gridView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numColumns="3"
android:horizontalSpacing="10dp"
android:verticalSpacing="10dp"></GridView>
*注意graidView 的三个属性的意思
android:numColumns=""是指每一行显示几列
android:horizontalSpacing="" 俩列之间的间距
android:verticalSpacing="" 俩行之间的间距
第二步java代码的实现功能
要想实现这样的功能我们要有三个步骤
- 1.数据源
这是我设置的固定的数据源
private int[] icon={
R.drawable.ic_admin,
R.drawable.ic_arrow,
R.drawable.ic_camera_enhance_black_24dp,
R.drawable.ic_cardid,
R.drawable.ic_key,
R.drawable.ic_login_pwd,
R.drawable.ic_close,
R.drawable.ic_vercode,
R.drawable.ic_reporttip};
private String[] iconName={"1","2","3","4","5","6","7","8","9"};
- 2.适配器
再这里我们使用的适配器是SimpleAdapter - 3加载适配器的视图
- 4.监听事件
dataList=new ArrayList<Map<String,Object>>();
//适配器
adapter=new SimpleAdapter(this,getData(),R.layout.item,new String[]{"image","text"},new int[]{R.id.image,R.id.text});
//放到视图上
gridView.setAdapter(adapter);
gridView.setOnItemClickListener(this);
设置的数据源和事件监听
private List<Map<String,Object>> getData() {
for (int i=0;i<icon.length;i++){
Map<String,Object> map=new HashMap<String,Object>();
map.put("image",icon[i]);
map.put("text",iconName[i]);
dataList.add(map);
}
return dataList;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(this,"我是"+iconName[position],Toast.LENGTH_SHORT).show();
}