欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

android中使用gridview显示文本内容

程序员文章站 2022-06-04 14:49:19
...

官方的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重启将模拟器关闭或者重建下模拟器就解决问题了..



转载于:https://my.oschina.net/abcijkxyz/blog/722441