首先在主XML中放入Grid View控件 取好id
private GridView gv1;
private int[] icon = {R.drawable.cat, R.drawable.cow, R.drawable.dog, R.drawable.hamster};
private String[] iconName = {"英雄介绍", "技能", "天赋推荐", "推荐出装"};
private List<Map<String, Object>> data_list = new ArrayList<Map<String, Object>>();
private SimpleAdapter simpleAdapter;
在声明一个xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/image1"
android:layout_width="100dp"
android:layout_height="100dp"
/>
<TextView
android:id="@+id/text1"
android:layout_width="100dp"
android:layout_height="30dp"
/>
</LinearLayout>
这个里面放置的就是你每一个网格的布局
(自己根据需要设置)
记得起好Id,下面用的时候会说自定义的xml
在类里面声明的东西,Grid View控件
icon数组里面放入的是图片
iconName放入相对应的名字
(都是根据自己的需要改名字和图片)
建一个List数组泛型为Map<String,Object>
声明一个Simple Adapter
private List<Map<String, Object>> getDaste() {
for (int i = 0; i < icon.length; i++) {
Map<String, Object> map = new HashMap<>();
map.put("image", icon[i]);
map.put("text", iconName[i]);
data_list.add(map);
}
return data_list;
}
建立一个getDaste方法
给Map<String,Object>填充数据
每建立一个Map,都填充两个数据一个是图片,一个是名字
然后再往刚才声明的List里面添加,添加完在重新声明一个Map
while(true)…
gv1 = findViewById(R.id.gridview1);
getDaste();
String[] form = {"image", "text"};
int[] to = {R.id.image1, R.id.text1};
//创建适配器对象
simpleAdapter = new SimpleAdapter(MainActivity.this, data_list, R.layout.item, form, to);
// simpleAdapter = new SimpleAdapter(MainActivity.this,data_list,R.layout.item,form,to);
gv1.setAdapter(simpleAdapter);
把声明的Grid View绑定上(通过Id)
调用刚才创建的方法
在建立俩个数组
第一个数组放的是下标(取Map里面的数据所使用的)
第二个数组放的是控件(自定义的xml里面的id)
使用Simple Adapter的构造方法(当前类,数据源(就是把Map存起来的List),自己声明的那个xml,Map需要的下标,赋值给哪个文件(这里是通过Id进行赋值的))
最后一步,给Grid View进行填充数据
运行结果: