官方的demo和例子都是显示图片,这里我反过来把它当table用,显示最基本的数据信息
1、首先定义基本的layout信息
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
android:background="#035FBE"
android:padding="5pt"
>
<GridView
android:id="@+id/grid_base"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="7"
android:gravity="left"
android:stretchMode="columnWidth"
android:visibility="visible"
android:background="#FF5400">
</GridView>
</LinearLayout>
2、其次是创建数据适配器,这里我创建了21个数据内容,按照上边的布局,每行显示7列
package com.jiuchongju.adapter;
import com.jiuchongju.json.Json2Name;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.TextView;
public class BaseInfoAdapter extends BaseAdapter {
private Context context;
private String[] texts =new String[21];
public BaseInfoAdapter(Context context,Json2Name jn) {
this.context = context;
for(int i=0;i<21;i++){
texts[i]=i+"_title_"+i;
}
}
@Override
public int getCount() {
return 21;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView tv;
if (convertView == null) {
tv = new TextView(context);
tv.setLayoutParams(new GridView.LayoutParams(85, 30));
}
else {
tv = (TextView) convertView;
}
tv.setText(texts[position]);
return tv;
}
}
3、在activity的oncreate中调用
GridView grid=(GridView) this.findViewById(R.id.grid_base);
grid.setAdapter(new BaseInfoAdapter(this,jn));
上边的那个BaseInfoAdapter的构造函数看我们自己的定义了
4、注意事项
某些情况下我们将gridview布局直接在linerlayout布局下显示不成功,后来经过反复实验发现一个问题
我们将eclipse重启将模拟器关闭或者重建下模拟器就解决问题了..