0%

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]);
                //点击后在标题栏显示点击的项
            }
            
        });
        
    }
}

源代码打包下载: [download id=”15”]