Android API 中文 (15) —— GridView

 

正文

  一、结构

 

    public final class GridView extends AbsListView

 

    java.lang.Object
      android.view.View
        android.view.ViewGroup
          android.widget.AdapterView<T extends android.widget.Adapter>
            android.widget.AbsListView
              android.widget.GridView

 

  二、类概述

    一个在平面上可显示多个条目的可滚动的视图组件,该组件中的条目通过一个ListAdapter和该组件进行关联。比如android手机中显示的应用:

    

    比如实现九宫格图,用GridView是首选,也是最简单的。

 

  三、构造函数

    public GridView (Context context)
    创建一个默认属性的GridView实例

    public GridView (Context context, AttributeSet attrs)

    创建一个带有attrs属性的GridView实例

    public GridView (Context context, AttributeSet attrs, int defStyle)

    创建一个带有attrs属性,并且指定其默认样式的GridView实例

 

  四、XML属性

属性名称

描述

android:columnWidth

设置列的宽度。关联的方法为:setColumnWidth(int)

android:gravity

设置此组件中的内容在组件中的位置。可选的值有:topbottomleftrightcenter_verticalfill_verticalcenter_horizontalfill_horizontalcenterfillclip_vertical 可以多选,用“|”分开。关联方法:setGravity (int gravity)

android:horizontalSpacing

两列之间的间距。关联方法:setHorizontalSpacing(int)

android:numColumns

列数。关联方法:setNumColumns(int)

android:stretchMode

缩放模式。关联方法:setStretchMode(int)

android:verticalSpacing

两行之间的间距。关联方法:setVerticalSpacing(int)

 

  五、公共方法

 

         public ListAdapter getAdapter ()

   获得与此组件相关的适配器..

返回值

    ListAdapter适配器实例

        

         public int getStretchMode ()

  获得GridView的缩放模式..

 

         public boolean onKeyDown (int keyCode, KeyEvent event)

  默认由KeyEvent.Callback.onKeyMultiple()实现,如果视图是可用的并且是可点击的,那么传入 KEYCODE_DPAD_CENTERKEYCODE_ENTER值是执行的是按下视图操作。

       参数

              keyCode 一个表示按下操作的键值.

event 表示按钮事件的对象

                  返回值

如果你认为已经完成事件处理,不想让让下一个处理器来处理此事件,则返回true,否则返回false

 

         public boolean onKeyMultiple (int keyCode, int repeatCount, KeyEvent event)

   默认由KeyEvent.Callback.onKeyMultiple()实现,总是返回false(不处理此事件)。

         参数

                   keyCode 键值.

repeatCount 该动作发生的次数.

event 事件对象

                  返回值

如果你认为已经完成事件处理,不想让让下一个处理器来处理此事件,则返回true,否则返回false

 

         public boolean onKeyUp (int keyCode, KeyEvent event)

   默认由KeyEvent.Callback.onKeyMultiple()实现,如果视图是可用的并且是可点击的,那么传入KEYCODE_DPAD_CENTERKEYCODE_ENTER值是执行的是点击视图操作。

参数

              keyCode 键值.

event 事件对象.

                  返回值

如果你认为已经完成事件处理,不想让让下一个处理器来处理此事件,则返回true,否则返回false

 

         public void setAdapter (ListAdapter adapter)

   设置GridView的数据。

                  参数

                            adapter grid提供数据的适配器 

 

         public void setColumnWidth (int columnWidth)

   设置GridView的列宽.

                  参数

                            columnWidth 列的宽度,以像素为单位

 

         public void setGravity (int gravity)

   设置控件内容的位置,默认值为:Gravity.LEFT.

                  参数

                            gravity 位置值

 

         public void setHorizontalSpacing (int horizontalSpacing)

   设置列间距.

                  参数

                            horizontalSpacing 列间距值

 

public void setNumColumns (int numColumns)

        设置grid的列数

 

参数

numColumns 列数值.

 

public void setSelection (int position)

        设置选中的条目.

 

参数

position . 数据条目在列表中的索引值(从0开始),如果在可触摸的模式下,在该索引值下的条目将不会被选中,但是该索引值仍然指向该条目。

 

public void setStretchMode (int stretchMode)

设置grid中的条目以什么缩放模式去填充空间。.

 

参数

stretchMode 可选值:NO_STRETCHSTRETCH_SPACINGSTRETCH_SPACING_UNIFORM,或STRETCH_COLUMN_WIDTH

 

public void setVerticalSpacing (int verticalSpacing)

设置行间距.

   参数

       verticalSpacing  间距值,以像素为单位 

 

 

  六、代码示例

    下面给出一个小例子先看效果:

    

    a).  GridView01.java

public   class  GridView01  extends  Activity {
    
private  GridView gridview;
    @Override
    
protected   void  onCreate(Bundle savedInstanceState) {
        
//  TODO Auto-generated method stub
         super .onCreate(savedInstanceState);
        setContentView(R.layout.gridview);
        
// 准备要添加的数据条目
        List < Map < String, Object >>  items  =   new  ArrayList < Map < String,Object >> ();
        
for  ( int  i  =   0 ; i  <   10 ; i ++ ) {
            Map
< String, Object >  item  =   new  HashMap < String, Object > ();
            item.put(
" imageItem " , R.drawable.icon);
            item.put(
" textItem " " text "   +  i);
            items.add(item);
        }
// 实例化一个适配器
        SimpleAdapter adapter  =   new  SimpleAdapter( this , items, R.layout.grid_item,  new  String[]{ " imageItem " " textItem " },  new   int []{R.id.image_item, R.id.text_item});
        
// 获得GridView实例
        gridview  =  (GridView)findViewById(R.id.mygridview);
        
// gridview.setNumColumns(3); // 可以在xml中设置
        
// gridview.setGravity(Gravity.CENTER); // 同上
// 将GridView和数据适配器关联
        gridview.setAdapter(adapter);
    }
}

 

    b).  gridview.xml

<? xml version="1.0" encoding="utf-8" ?>
< LinearLayout  xmlns:android ="http://schemas.android.com/apk/res/android"
    android:layout_width
="wrap_content"
    android:layout_height
="wrap_content" >
    
< GridView
         android:id ="@+id/mygridview"
        android:numColumns
="3"
        android:gravity
="center_horizontal"
        android:layout_width
="wrap_content"
        android:layout_height
="wrap_content" >
    
</ GridView >
</ LinearLayout >

    c).  grid_item.xml

<? xml version="1.0" encoding="utf-8" ?>
< RelativeLayout 
     android:id ="@+id/RelativeLayout01"
    android:layout_width
="fill_parent"
    android:layout_height ="fill_parent"
    xmlns:android
="http://schemas.android.com/apk/res/android" >
    
< ImageView 
        android:id ="@+id/image_item"
        android:layout_width
="wrap_content"
        android:layout_height
="wrap_content" >
    
</ ImageView >
    
< TextView 
        android:id ="@+id/text_item"
        android:layout_below
="@+id/image_item"
        android:layout_height
="wrap_content"
        android:layout_width
="wrap_content" >
    
</ TextView >
</ RelativeLayout >

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
控件使用 1、鼠标经过行的时候改变该行的样式,鼠标离开行的时候恢复该行的样式 使用方法(设置属性): MouseOverCssClass - 鼠标经过行时行的 CSS 类名 2、对多个字段进行复合排序;升序、降序的排序状态提示 使用方法(设置SmartSorting复合属性): AllowSortTip - 是否启用排序提示 AllowMultiSorting - 是否启用复合排序 SortAscImageUrl - 升序提示图片的URL(不设置则使用默认图片) SortDescImageUrl - 降序提示图片的URL(不设置则使用默认图片) SortAscText - 升序提示文本 SortDescText - 降序提示文本 3、根据按钮的CommandName设置其客户端属性 使用方法(设置ClientButtons集合属性): BoundCommandName - 需要绑定的CommandName AttributeKey - 属性的名称 AttributeValue - 属性的值(两个占位符:{0} - CommandArgument;{1} - Text) Position - 属性的值的位置 4、联动复选框(复选框的全选和取消全选)。选中指定的父复选框,则设置指定的所有子复选框为选中状态;取消选中指定的父复选框,则设置指定的所有子复选框为取消选中状态。如果指定的所有子复选框为均选中状态,则设置指定的父复选框为选中状态;如果指定的所有子复选框至少有一个为取消选中状态,则设置指定的父复选框为取消选中状态 使用方法(设置CascadeCheckboxes集合属性): ParentCheckboxID - 模板列中 父复选框ID ChildCheckboxID - 模板列中 子复选框ID CashBox.Helper.WebGrid中的静态方法 List GetCheckedDataKey(GridView gv, int columnIndex) List GetCheckedDataKey(GridView gv, string checkboxId) 5、固定指定行、指定列,根据RowType固定行,根据RowState固定行 使用方法(设置FixRowColumn复合属性): FixRowType - 需要固定的行的RowType(用逗号“,”分隔) FixRowState - 需要固定的行的RowState(用逗号“,”分隔) FixRows - 需要固定的行的索引(用逗号“,”分隔) FixColumns - 需要固定的列的索引(用逗号“,”分隔) TableWidth - 表格的宽度 TableHeight - 表格的高度 6、响应行的单击事件和双击事件,并在服务端处理 使用方法(设置属性): BoundRowClickCommandName - 行的单击事件需要绑定的CommandName BoundRowDoubleClickCommandName - 行的双击事件需要绑定的CommandName 7、行的指定复选框选中的时候改变该行的样式,行的指定复选框取消选中的时候恢复该行的样式 使用方法(设置CheckedRowCssClass复合属性): CheckBoxID - 模板列中 数据行的复选框ID CssClass - 选中的行的 CSS 类名 8、导出数据源的数据为Excel、Word或Text(应保证数据源的类型为DataTable或DataSet) 使用方法: 为WebGrid添加的方法 Export(string fileName) Export(string fileName, ExportFormat exportFormat) Export(string fileName, ExportFormat exportFormat, Encoding encoding) Export(string fileName, int[] columnIndexList, ExportFormat exportFormat, Encoding encoding) Export(string fileName, int[] columnIndexList, string[] headers, ExportFormat exportFormat, Encoding encoding) Export(string fileName, string[] columnNameList, ExportFormat exportFormat, Encoding encoding) Export(string fileName, strin

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值