1. 程式人生 > >android中使用gridview顯示文字內容

android中使用gridview顯示文字內容

官方的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重啟將模擬器關閉或者重建下模擬器就解決問題了..