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文本框控件,数据展示还是不太美观.其中 ...
随机推荐
- PHP 正则表达式常用函数使用小结
在PHP中有两套正则表达式函数库.一套是由PCRE(Perl Compatible Regular Expression)库提供的.PCRE库使用和Perl相同的语法规则实现了正则表达式的模式匹配,其 ...
- PLSQL_性能优化工具系列09_SQL Plan Management
2014-09-24 Created By BaoXinjian
- alpha融合
//alpha融合 //作者:sandy //时间:2015-10-6 //将一只狗的头像融合在蜗牛头上 #include <cv.h> #include <highgui.h> ...
- 移动设备wap手机网页html5通过特殊链接:打电话,发短信,发邮件详细教程
如果需要在移动浏览器中实现拨打电话,调用sms发短信,发送email等功能,移动手机WEB页面(HTML5)Javascript提供的接口是一个好办法. 采用url href链接的方式,实现在Safa ...
- IT项目管理
IT项目管理是项目管理在IT领域的应用,结合IT行业特点运用项目管理技术.理念和方法,包括9大知识领域(项目综合.范围.时间.成本.质量.人力资源.沟通.风险和采购管理)以及启动.计划.实施.控制和收 ...
- WCF z
终结点与服务寄宿 由于最近可能要使用WCF做开发,开始重读蒋金楠的<WCF全面解析>,并整理个人学习WCF的笔记. 蒋金楠的书是我的第一本WCF入门书,虽说硬着头皮啃下来了,但是原理内容太 ...
- 用Java开发gRPC服务的例子分析
本文的代码例子来自:https://github.com/grpc/grpc-java 定义服务 这一步与其他语言完全一样,需要定义gRPC的服务.方法.request和response的类型. 完 ...
- angularjs 与django标签语法冲突的解决办法
在需要使用angularjs标签的地方套上verbatim标签,如: {% verbatim %} ... {% endverbatim %}
- java String 的方法 (01)
1.int compareTo(String other) 按照字典的顺序,如果字符串位于String other 之前,则返回一个负数,如果字符串位于othere之后,则返回一个正数,如果两个字符串 ...
- hive 调用java的函数和科学记数法转换
hive中field如果是string,比如id,那么使用10000000000+id结果是科学计数法显示,转换为正常显示方法: select (10000000000+cast(id as int) ...