您的位置:首页 > 其它

GridView的基本使用方法

2012-08-25 09:45 211 查看
GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,文字等内容。想要实现一个排列整齐的布局,使用其他的布局方式也可以实现,例如ListView,但是实现起来比较复杂,用GridView是首选,也是最简单的。主要用于设置Adapter。

GridView常用的XML属性:
属性名称
描述
android:columnWidth
设置列的宽度。
android:gravity
设置此组件中的内容在组件中的位置。可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical可以多选,用“|”分开。
android:horizontalSpacing
两列之间的间距。
android:numColumns
设置列数。
android:stretchMode
缩放模式。
android:verticalSpacing
两行之间的间距。
首先要建立一个Android的工程,在layout的文件夹下面main.xml文件里面写如下代码:

<?xml
version="1.0"
encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<GridView

android:id="@+id/gridview"
android:columnWidth="80dp"
android:numColumns="auto_fit"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
/>
</LinearLayout>

在这个配置文件中GridView的属性已经在上面介绍了,在这里就不重复了。

还需要在layout的文件夹下面建一个city.xml文件,这个文件的作用是用于显示每一个单元格的。这里每一个单元格的字体大小和一些属性都可以进行设置,在这里就不重复了。City.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"
>
<TextView
android:id="@+id/ItemText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>

下面就是Java代码:

package com.fx.cx;

import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.AdapterView.OnItemClickListener;
publicclass GridViewTest
extends Activity {
private GridView
gridView;
private String[]
citys =
new String[]{"北京","上海","武汉","长沙","南京","天津","深圳","香港","澳门","西安","成都","沈阳"};
publicvoid
onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gridView = (GridView)findViewById(R.id.gridview);
ArrayList<HashMap<String,String>> list =
new ArrayList<HashMap<String,String>>();
for (int i = 0; i <
citys.length; i++) {
HashMap<String,String> map =
new HashMap<String,String>();
map.put("ItemText",
citys[i]);
list.add(map);
}
SimpleAdapter adapter =
new
SimpleAdapter(this,list,R.layout.city,
new String[]{"ItemText"},newint[]{R.id.ItemText});
gridView.setAdapter(adapter);
gridView.setOnItemClickListener(new ItemClickListener());

}
class ItemClickListener
implements OnItemClickListener{
publicvoid onItemClick(AdapterView<?> arg0, View arg1,
int arg2,
long arg3) {
HashMap<String, String> item=(HashMap<String, String>) arg0.getItemAtPosition(arg2);

setTitle((String)item.get("ItemText"));

}
}
}
在这段Java代码中,先要通过Id值获得GridView的对象,然后通过SimpleAdapter的适配器放到GridView的布局中。在构造SimpleAdapter的时候,一共有五个参数,第一个参数是传入当前上下文,第二个参数是数据的来源(ArrayList),第三个参数是ListItem的xml实现(ciry.xml文件),第四个参数是数组与ListItem对应的子项,第五个参数是ListItem的xml(city.xml文件)文件里面的TextView的Id。
得到了SimpleAdapter的适配器,放到GridView中,就可以实现网格布局,当然也可以对网格布局中的每一个Item都可以进行事件的监听,使用setOnItemClickListener()这个方法即可,但是需要实现接口OnItemClickListItem()。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: