GridView的使用(以仿手机桌面为例)
Eg.
<GridView
android:id="@+id/gridView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:horizontalSpacing="10dp"
android:numColumns="3"
android:verticalSpacing="10dp">
重要属性:
android:horizontalSpacing="10dp"
列与列的间距(横着看)
android:verticalSpacing="10dp"
行与行的间距(竖着看)
android:numColumns="3"
列数
先来张效果图:
使用方法如下:
public class UIMainActivity extends BaseActivity implements AdapterView.OnItemClickListener {
private Intent intent;
private GridView gridView;
private SimpleAdapter adapter;
private List<Map<String, Object>> lists = new ArrayList<Map<String, Object>>();
private String[] text = new String[]{"alertDialog", "switch", "DatePicker", "TimePicker","spinner"};
private int[] icon = new int[]{R.mipmap.ic_launcher, R.mipmap.ic_launcher,
R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.ui_main_layout);
gridView = (GridView) findViewById(R.id.gridView);
adapter = new SimpleAdapter(this, getData(), R.layout.gridview_item, new String[]{"icon", "text"}, new int[]{R.id.icon, 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("icon", icon[i]);
map.put("text", text[i]);
lists.add(map);
}
return lists;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch (position) {
case 0:
intent = new Intent(UIMainActivity.this, AlertDialogActivity.class);
startActivity(intent);
break;
case 1:
intent = new Intent(UIMainActivity.this, SwitchActivity.class);
startActivity(intent);
break;
}
}
}
- 添加数据
- 构造适配器
这里选用SimpleAdapter,构造方法使用了
new SimpleAdapter(this, getData(), R.layout.gridview_item, new String[]{"icon", "text"}, new int[]{R.id.icon, R.id.text});
其中gridview_item是在drawable中新建的子布局,在gridview_item中只添加了imageView和TextView来实现手机桌面图标的效果,getData()方法返回一个List<Map<String, Object>>
类型的数据来作为适配器的数据源
3.添加适配器
直接调用setAdapter(adapter);即可
4.添加监听事件
setOnItemClickListener与onItemClick即可哦,position就是你点击的第几项,从0开始计数