Android中的GridView

本文详细介绍如何使用GridView控件展示数据,包括布局配置、适配器自定义及数据绑定过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GridView网格视图

     这个控件可以通过网格的形式来显示数据(文本、图像),且它的排列方式类似于矩阵,要采用行列的方式来布局子控件

  EG:

  第一步:先建立一个布局文件(gridview_layout.xml)并采用线性布局,并嵌入GridView控件

  第二步:在新建一个gridview_item.xml布局文件,采用线性布局,增加TextView和ImageView控件

  第三步:新建类MyActivity()邴继承Activity,并自定义一个适配器(MyCarAdapter)

gridview_layout.xml的布局代码里面只写一个控件,那就是:

  <GridView

  android:id="@+id/gridview"

  android:Layout_width="fill_parent"

  android:Layout_height="Wrap_content"

  android:numColums="3"

  android:verticalSpacing="5dip"

  />

gridview_item.xml的代码:在里面只写一个TextView控件和一个ImamgeView控件

<TextView

  android:id="@+id/textview"

  android:Layout_width="fill_parent"

  android:Layout_height="Wrap_content"

  android:gravity="center"

  android:text=""(这句话也可以不写)

/>

<ImageView

  android:id="@+id/imageview"

  android:Layout_width="fill_parent"

  android:Layout_height="Wrap_content"

  android:margin="20dip"

/>

  MyActivity()的代码如下:

/**

*演示GridView的使用

*

*  @author Catherine

*

**/

//声明一个GridView视图

private GridView mGridView;

//然后再进入重写的方法onCreate()中

//实例化mGridView;

mGridView=(GirdView)findViewById(R.id.gridview);

//设置标题·

setTitle("GridView的使用');

//调用方法

bindAdapter();

//创建一个方法,为了去绑定Adapter

private void bindAdapter(){

MyAdapter myadapter=new MyAdapter();

mGridView.setAdapter(myadapter);

}

//自定义一个Adapter,可以灵活的控制Gridview布局显示

Class  MyAdapter extend BaseAdapter{

//图片的索引id

int[] imgs={R.drawable.car1,R.drawable.car2,R.drawable.car3

      R.drawable.car4,R.drawable.car5,R.drawable.car6

      R.drawable.car7,R.drawable.car8,R.drawable.car9};

 

}

//定义一个字符串来初始化车名字

String [] carNames{"本田","雷克萨斯","兰博基尼","法拉利","宝马","奥迪","丰田","保时捷","奔驰" };

//构造方法(可以不用写)

public MyAdapter(){}

}

//获取条目的数量(重写一个方法(getcount()))

@Override

public int getCount(){

return imgs.length;

}

//返回子控件的内容

@Override

public  Object getItem(int position)

{

return imgs[position];

}

@Override

public Object getItemId(int position)

{

return position;

}

//重新加载View的方法

@Overvide

public View getView(int position,View convertView,ViewGroup parent)

{

ImageView imageview=null;

if(convertView==null){

//通过LayoutInflater类来加载布局,返回一个View的实例对象

convertView=LayoutInflater.from(MyActivity.this).inflate(R.layout.gridview_item,null);

 

}

//通过convetView调用其findviewById方法根据其id返回相应的控件

imageview=(ImageView)findviewById(R.id.imageview);

TextView .setImageResource(imgs[position]);

TextView textview=(TextView)convertView.findviewById(R.id.textview);

textview.setText(carNames[position]);

return convertView;

}

 

 

 

转载于:https://www.cnblogs.com/Catherine-Brain/p/William_Catherine_Brain.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值