Android入门之GridView(表格控件)
GridView是一个表格控件,可以在每个单元格中显示自定义的View或者字符串。在这里我们要实现一个图标下方有文字的效果。

1、首先我们应自定义布局文件image_text.xml。代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <ImageView
android:id="@+id/imageview"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/a0"
/>
<TextView
android:id="@+id/textview"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="textView"/>
</LinearLayout>
2、写一个实体类用来存放单元格里面每个视图的图片资源和文字:
public class EachIcon {
private int imageSrcId;
private String iconString;
public EachIcon(int imageSrcId,String iconString)
{
super();
this.imageSrcId = imageSrcId;
this.iconString = iconString;
}
public int getImageSrcId()
{
return imageSrcId;
}
public void setImageSrcId(int imageSrcId)
{
this.imageSrcId = imageSrcId;
}
public String getIconString ()
{
return iconString;
}
public void setIconString(String iconString)
{
this.iconString = iconString;
}
}
3、第三步我们还需要自定义一个适配器,名称为ImageAdapter,代码如下:
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView; public class ImageAdapter extends BaseAdapter {
private List<EachIcon> eachIconList = new ArrayList();
private Context context; public ImageAdapter(Context context)
{
super();
this.context = context; EachIcon e1 = new EachIcon(R.drawable.a0,"图标1");
EachIcon e2 = new EachIcon(R.drawable.a1,"图标2");
EachIcon e3 = new EachIcon(R.drawable.a2,"图标3");
EachIcon e4 = new EachIcon(R.drawable.a3,"图标4");
EachIcon e5 = new EachIcon(R.drawable.a4,"图标5");
EachIcon e6 = new EachIcon(R.drawable.a5,"图标6");
EachIcon e7 = new EachIcon(R.drawable.a6,"图标7");
EachIcon e8 = new EachIcon(R.drawable.a7,"图标8");
EachIcon e9 = new EachIcon(R.drawable.a8,"图标9");
EachIcon e10 = new EachIcon(R.drawable.a9,"图标10");
EachIcon e11 = new EachIcon(R.drawable.a10,"图标11");
EachIcon e12 = new EachIcon(R.drawable.a11,"图标12");
EachIcon e13 = new EachIcon(R.drawable.a12,"图标13");
EachIcon e14 = new EachIcon(R.drawable.a13,"图标14");
EachIcon e15 = new EachIcon(R.drawable.a14,"图标15");
EachIcon e16 = new EachIcon(R.drawable.a15,"图标16");
EachIcon e17 = new EachIcon(R.drawable.a16,"图标17"); eachIconList.add(e1);
eachIconList.add(e2);
eachIconList.add(e3);
eachIconList.add(e4);
eachIconList.add(e5);
eachIconList.add(e6);
eachIconList.add(e7);
eachIconList.add(e8);
eachIconList.add(e9);
eachIconList.add(e10);
eachIconList.add(e11);
eachIconList.add(e12);
eachIconList.add(e13);
eachIconList.add(e14);
eachIconList.add(e15);
eachIconList.add(e16);
eachIconList.add(e17);
} @Override
public int getCount() {
// TODO Auto-generated method stub
return eachIconList.size();
} @Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
} @Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
Log.v("rub","---------------------------"); LayoutInflater inflater = ((Activity)context).getLayoutInflater();
View imgss = inflater.inflate(R.layout.image_text,null); ImageView ivimgss = (ImageView)imgss.findViewById(R.id.imageview);
TextView tvimgss = (TextView)imgss.findViewById(R.id.textview); ivimgss.setImageResource(eachIconList.get(position).getImageSrcId());
tvimgss.setText(eachIconList.get(position).getIconString());
return imgss;
}
}
4、第四步在Activity里面绑定GridView:
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.ListAdapter;
import android.widget.TextView; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); ListAdapter adapter = new ImageAdapter(this);
GridView gv = (GridView)this.findViewById(R.id.gridview); gv.setAdapter(adapter);
gv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
Log.v("------------------单击的索引值:", ""+((TextView)arg1.findViewById(R.id.textview))
.getText().toString()+"索引是:"+arg2);
}
});
}
}
这样一个自定义的视图加文字描述的GridView(表格控件)就完成了。对了,还有主布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" > <GridView
android:id="@+id/gridview"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:numColumns="4"
android:horizontalSpacing="5px"
android:verticalSpacing="5px"
></GridView> </RelativeLayout>
写下来了以备自己忘记。
下载地址:http://files.cnblogs.com/Jett/gridview.rar
Android入门之GridView(表格控件)的更多相关文章
- Gridview表格控件
Gridview表格控件 效果图: 分析: 使用和ListvVew很像,都是经过适配器将数据绑定到控件上 具体步骤如下: 1.创建GridView控件,并指定列数 android:numColumns ...
- 使用 Bolt 实现 GridView 表格控件
用 Bolt 实现了一个表格控件: 1. 提供 Insert,Remove,Get,Set 接口,可以为表格增删数据: 2. 通过 ItemClass, ItemSetDataFunc 属性来指定显 ...
- Android入门之时间日期控件
效果图: MainActivity.java package com.jkxqj.helloandroid; import android.app.Activity; import android.o ...
- 深入浅出ExtJS 第三章 表格控件
3.1 表格的特性简介 >.Ext中的表格功能:包括排序/缓存/拖动/隐藏某一列/自动显示行号/列汇总/单元格编辑等实用功能; >.表格由类Ext.grid.GridPanel定义,继承自 ...
- 动态生成表格呈现还是将表格直接绑定gridview等控件呈现的开发方式选择依据
动态生成表格呈现还是将表格直接绑定gridview等控件呈现的开发方式选择依据:由存储过程决定,如果编写的存储过程可以生成需要呈现的表格则直接绑定,否则要动态生成表格
- Ext入门学习系列(五)表格控件(3)
上节学习了Ext中如何绑定服务器端传递的数据.分别用asp.net和asp.net MVC.PHP.XML为例.本节主要介绍绑定之后的分页功能. 一.Ext的表格控件如何绑定? 分页是Ext自带的一个 ...
- Ext入门学习系列(五)表格控件(2)
上节学习了Ext中表格控件,从创建,到定义数据源.绑定显示,大体明白了一个基本的表格控件是怎么实现的.而我们用表格控件多用于从各种数据源接收数据并显示出来,并不是写死的.本章我们就不同数据源的不同实现 ...
- Ext入门学习系列(五)表格控件(1)
上节学习了Ext面板控件,为后面的各个控件学习奠定基础,在此基础上本章将学习网络开发最期待的功能——表格控件. 我们都知道网络编程语言中,除了.net其他的基本没有提供网格控件,而最近的asp.net ...
- [ PyQt入门教程 ] PyQt5中数据表格控件QTableWidget使用方法
如果你想让你开发的PyQt5工具展示的数据显得整齐.美观.好看,显得符合你的气质,可以考虑使用QTableWidget控件.之前一直使用的是textBrowser文本框控件,数据展示还是不太美观.其中 ...
随机推荐
- Android权限之sharedUserId和签名
转自:http://blog.csdn.net/hmg25/article/details/6447067 最近在做个东西,巧合碰到了sharedUserId的问题,所以收集了一些资料,存存档备份. ...
- svn 批量更新 bat脚本
由于有多个程序放在svn上管理,每天都要进入相应的目录进行svn 更新操作,现在写了一个简单的脚本进行批量自动更新. Code@echo off @echo ********************* ...
- [HTMLDOM]onmousedown、onmouseup 以及onclick事件触发顺序
摘自w3school:http://www.w3school.com.cn/htmldom/dom_events.asp onmousedown.onmouseup 以及 onclick 事件是鼠标点 ...
- Software Engineer
1, 软件工程师 软件工程师英文是Software Engineer,是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格.软件工程师是从事软件开发相关工作的人员的统称. 它是一个广 ...
- laravel下使用阿里云oss上传图片
对小公司而言,使用阿里云oss比直接买硬盘要划算的多,不管从存储性价比上还是从网速负载上.最近因为公司的项目有比较大的图片存储访问需求,所以决定使用阿里云的oss. 在研究了一下以后,摆着不自己造轮子 ...
- Zend Guard Run-time support missing问题的解决
Zend Guard不仅可以实现对PHP应用的脚本进行加密保护和对PHP应用的产品进行商业许可证管理,还可以为许多软件生产商.IT服务提供商提供完善的加密和安全的产品发布系统. 虽然现在可以成功加密p ...
- mysql中游标的使用
BEGIN #遍历占领野地表还原军队 # and cityid=cityid) ,) ;#occupyWild表的TroopsId ,) ;#occupyWild表的CityId ,) ;#occup ...
- Android之BroadcastReceiver 监听系统广播
绑定广播有两种方式 一.配置文件绑定,在程序未启动也能监听 二.代码方式绑定,在程序启动后才能监听 1.绑定和取消绑定广播 public class MainActivity extends Acti ...
- bootstrap-按钮样式
<div class="container"> <!-- 按钮的背景色 --> <div class="row"> < ...
- springmvc 对REST风格的支持
1.PathVariable注解 用于映射url的占位符到目标方法的参数中 例子: @RequestMapping("/testPathVariable/{id}") public ...