自己学习时遇到的,以便日后参考
首先来看一看MainActivity中的内容,原理即为配置Map、适配器、Arraylist,输出时将适配器和GridView进行连接
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GridView gridView = (GridView)findViewById(R.id.gridview);
//定义datalist
List<Map<String,String>> dataList=new ArrayList<>();
//作循环依次生成图标
for(int i=0;i<12;i++){
//设定map
Map<String,String> map=new HashMap<>();
map.put("menu_name","菜单"+i);
//将map传入datalist
dataList.add(map);
}
//以下是单个图标显示的设置,根据需求添加
{Map<String,String>map = new HashMap<>();
map.put("menu_name","新增模块");
dataList.add(map);}
String[] from = {"menu_name"};
int [] to ={R.id.textView};
//配置适配器
SimpleAdapter simpleAdapter1 = new SimpleAdapter(this,dataList,R.layout.grid,from,to);
//将适配器和GridView进行连接
gridView.setAdapter(simpleAdapter1);
}
}
接下来是布局方面,很简单,就是添加一个GridView
其中numColumns这个参数决定了一行有最多几个图标
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<GridView
android:id="@+id/gridview"
//numColumns为3即一行最多生成3个图标
android:numColumns="3"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
如下图所示,生成了12个图标,在额外的又生成了一个图标,一行最多显示3个。