刚开始学习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”]