GridView表格视图简单用法

刚开始学习Android开发的时候,因为学习GridView的第一个例子就是显示图片,所以误以为GridView是显示图片的控件。其实GridView是一个表格控件,功能类似HTML的table。下面用一个简单的例子来讲解GridView用法。
效果图:

xml代码:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<GridView android:id="@+id/gv"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
/>
<Button android:id="@+id/b1"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
	android:text="两列"
/>
<Button android:id="@+id/b2"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
	android:text="四列"
/>
</LinearLayout>

一个GridView,两个按钮
在string.xml中定义一个数组,为GridView提供内容,也可以在JAVA程序中定义;


    <string-array name="date">
    	<item>a</item>
    	<item>b</item>
    	<item>c</item>
    	<item>d</item>
    	<item>e</item>
    	<item>f</item>
    	<item>g</item>
    	<item>h</item>
    	<item>i</item>
    </string-array>

每一项的布局,在layout里新建一个xml文件,内容如下:


<?xml version="1.0" encoding="utf-8"?>
<TextView android:id="@+id/item"
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
</TextView>

这里可以定义显示的样式,如文字大小,颜色之类
最后是程序代码:


package com.pocketdigi.gridview;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.GridView;
import android.widget.AdapterView.OnItemClickListener;

public class main extends Activity {
    /** Called when the activity is first created. */
	ArrayAdapter adapter;
	String[] s;
	GridView gv;
	Button b1,b2;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        gv=(GridView)findViewById(R.id.gv);
        b1=(Button)findViewById(R.id.b1);
        b2=(Button)findViewById(R.id.b2);
        s=getResources().getStringArray(R.array.date);
        adapter=new ArrayAdapter(this,R.layout.item,s);
        //显示文本适配器,如果需要显示其他如图片,可以自定义适配器
        gv.setAdapter(adapter);
        b1.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				gv.setNumColumns(2);
				//设置两列显示 
			}
        	
        });
        b2.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				gv.setNumColumns(4);
				//设置四列显示
			}
        	
        });
        gv.setOnItemClickListener(new OnItemClickListener(){

			@Override
			public void onItemClick(AdapterView arg0, View arg1, int arg2,
					long arg3) {
				// TODO Auto-generated method stub
				setTitle("第"+String.valueOf(arg2)+"个:"+s[arg2]);
				//点击后在标题栏显示点击的项
			}
        	
        });
        
    }
}

源代码打包下载:
抱歉,只有对本站任何文章发表过评论才能阅读隐藏内容。

© 2011, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记