`

android绚丽的ListView表格效果的实现

阅读更多

 

简介:

  在业务系统中经常会用到表格控件去显示数据,但Android自带的ListView控件本身无法实现一种较为美观的表格效果,但我们可以通过其他的方式让ListView表格变得更漂亮。让我们一起来探讨下。

  我们先来看看以下两幅图:

  图(一)

  图(二)

  很明显,图一比较简洁,而图二看上去明亮耀眼。从用户体验的角度来讲,图二界面效果明显比图一好,那边框是怎么加进去的呢?
  ListView的adapter我们使用了SimapleAdapter,从上图可以看出ListView的每行包含了许多项,ListView的数据内容我们可以通过构建List以及设置每一项为一个map实现:

    ArrayList<HashMap<String, String>> mylist = newArrayList<HashMap<String, String>>();  
  HashMap<String, String> map1 = newHashMap<String, String>();     
  map1.put("Num" ,  "220503432" );  
  map1.put("Receive" ,  "张三" );  
  map1.put("Payway" ,  "货到付款" );     
  map1.put("TotalPrice" ,  "$98.30" );  
  map1.put("State" ,  "已发货" );  
  map1.put("Date" ,  "2010-09-23" );  
  mylist.add(map1);  

 ListView相当于一个显示数据的容器,里面每一行都是一个订单信息,这些行信息我们需要在另外一个XML文件里面定义,具体的表格边框也是在这 个XML文件里面实现。下面我们先介ListView中如何实现表格的竖线边框。在Android里面,View是android线条的基 础,ListView里面的边框就是用View实现的,ListView里面的内容我们可以用一个xml文件装载ListView的内容,而 TableLayout也是不存在边框的,那么下面我们用View在xml文件里面画边框,以下是实现ListView边框的核心代码:

<TableLayoutandroid:id= "@+id/a07_ls_rlo"   
   android:layout_width="wrap_content"   
  xmlns:android="http://schemas.android.com/apk/res/android"   
   android:layout_height="wrap_content" >  
  <TableRow>  
  <View style="@style/view2"  />  
  <TextView  
  style="@style/txtNolinkleft"   
  android:id="@+id/a07_ls_txtYF" />  
  <View style="@style/view2"  />  
  <TextView  
  style="@style/txtNolinkright"   
  android:layout_width="80dip"   
  android:gravity="center"   
  android:id="@+id/a07_ls_txtXXSR" />  
  <View style="@style/view2"  />  
  <TextView  
  style="@style/txtNolinkright"   
  android:layout_width="100dip"   
  android:gravity="center"   
  android:id="@+id/a07_ls_txtYNSE" />  
  <View style="@style/view2"  />  
  <TextView  
  style="@style/txtNolinkright"   
  android:layout_width="80dip"   
  android:id="@+id/a07_ls_txtSNSE" />  
  <View style="@style/view2"  />  
  <TextView  
  style="@style/txtNolinkleft"   
  android:layout_width="92dip"   
  android:gravity="center"   
  android:id="@+id/a07_ls_txtSBRQ" />  
  <View style="@style/view2"  />  
  <TextView  
  style="@style/txtNolinkleft"   
  android:layout_width="92dip"   
  android:id="@+id/a07_ls_txtJNRQ" />  
  <View style="@style/view2"  />  
  <TextView  
  style="@style/txtNolinkleft"   
  android:layout_width="80dip"   
  android:gravity="center"   
  android:id="@+id/a07_ls_txtSPDM" />  
  <View style="@style/view2"  />  
  </TableRow>  
  </TableLayout>  

 数据源以及ListView每行的内容都定义好后,就可以使用SimapleAdapter将ListView、数据内容、每行的定义关联起来,代码如下:

SpecialAdapter mSchedule =  new  SpecialAdapter( this ,mylist,R.layout.listview, 
        new  String[]{ "Num" , "Receive" , "Payway" , "TotalPrice" , "State" , "Date" },
        newint[]{R.id.a07_ls_txtNum,R.id.a07_ls_txtReceive,R.id.a07_ls_txtPayway,
            R.id.a07_ls_txtTotalPrice,R.id.a07_ls_txtState,R.id.a07_ls_txtDate};  
  list.setAdapter(mSchedule);  

 可能有人看到上面代码中的SpecialAdapter会奇怪这是什么类?不是用SimpleAdapter么?下面会讲解到SpecialAdapter是做什么用的。

  在Android布局中,基本的5大布局方式是没有边框的,我们通过上面View的方式实现了边框效果,而通常在做一些业务系统的时候客户除了要求在 数据列表页面中能以表格的形式呈现数据外还要求能有选中行高亮、单双行颜色交替等比较绚丽的效果,当然这对于用户体验来说是很好的。下面将介绍这两个效果 的实现方式。


   我们先看一下选中行高亮的效果如图(三)所示:

  图(三)


  高亮效果通过设置背景图来实现,实现的代码如下:

ListView list=(ListView) this .findViewById(R.id.listview);  
   Drawabledrawable = getResources().getDrawable(R.drawable.listview_hoverbg);  
  list.setSelector(drawable); 

 从图(三)可看出该列表实现了单双行颜色交替效果,其实现就和前面提到的SpecialAdapter有关,SpecialAdapter继承了 SimpleAdapter类,SpecialAdapter重写了父类的getView方法,通过对参数position的判断区分单双行,通过对列表 单元格每个view的背景色设置从而达到设置整行背景色的效果,代码如下:

privateint[] colors =  new   int [] {  0x30FF0000 ,  0x300000FF  };  
  @Override     
  public  View getView( int  position, View convertView, ViewGroup parent) {     
  View view = super .getView(position, convertView, parent);   
  intcolorPos = position % colors.length;     
  if (colorPos== 1 )  
   view.setBackgroundColor(Color.argb(250 ,  255 ,  255 ,  255 ));   
  else   
   view.setBackgroundColor(Color.argb(250 ,  224 ,  243 ,  250 ));   
  return  view;    
  }  

 

SimpleAdapter是一个十分有用的类,不仅仅是数据源适配器,在里面可以取得或者设置每一行的许多信息,如可以获取到每一行每个单元格的控件以及样式等等,在开发绚丽的ListView表格方面是非常有用的和实用的一个类,具有很强的灵活性与扩展性

 

 

http://blog.csdn.net/xiehuan_uestc/article/details/7982814#

 

分享到:
评论

相关推荐

    listview实现表格效果,带表格线

    标题“listview实现表格效果,带表格线”表明我们要讨论的是如何利用ListView来模拟表格布局,并添加分割线以清晰地展示每个单元格的边界。 首先,我们要理解ListView的基本结构。ListView由多个ListView项...

    android ListView实现表格

    然而,仅使用默认的ListView并不能直接实现表格效果。本教程将详细介绍如何通过自定义ListView来实现一个功能丰富的表格,包括动态添加行列。 首先,我们需要理解ListView的基本工作原理。ListView通过Adapter来...

    Android中ListView实现表格效果

    本篇文章将详细讲解如何在Android中利用ListView实现表格效果。 首先,我们需要理解ListView的工作原理。ListView通过Adapter来绑定数据,Adapter是连接数据源和视图的桥梁。我们可以通过自定义Adapter来定制...

    android listView表格效果图及代码

    以上就是实现Android ListView表格效果的基本步骤。实际开发中,你可能还需要处理更多细节,如列表项的点击事件、数据加载优化(ViewHolder模式)、异步加载等。通过不断实践和优化,你可以创建出更加复杂的列表视图...

    android用ListView实现表格样式

    本篇将详细介绍如何在Android中利用ListView实现表格样式的界面。 首先,理解ListView的基本原理是至关重要的。ListView依赖于Adapter来提供数据,它会根据Adapter返回的数据项数量动态创建视图(View)。为了实现...

    Android Listview表格

    这篇博客“Android Listview表格”探讨了如何在Android应用中使用ListView来构建表格样式的视图。 首先,ListView的工作原理是通过Adapter(适配器)将数据与视图进行绑定。Adapter就像一个中介,它从数据源获取...

    Android使用popwindow弹窗显示listview表格

    通过以上步骤,我们就实现了在Android中使用`PopupWindow`弹出一个包含`ListView`表格的效果。实际项目中,你可能需要根据需求调整布局、数据源、适配器等细节,但基本思路就是这样。记得在你的博客或其他平台上分享...

    android 使用ListView来实现表格

    为了实现表格效果,我们将在ListView项布局中设置多列,每列显示不同的数据。 1. **创建ListView Item布局** - 在res/layout目录下创建一个新的XML布局文件,例如`list_item_table.xml`,用于定义每个表格行的布局...

    android--ListView实现带标题栏效果(附源码)

    本教程将详细介绍如何在ListView中实现带标题栏的效果。标题栏通常用于显示分类信息或者操作按钮,为用户提供更好的交互体验。以下是对实现这一功能的详细步骤的阐述: 1. **创建布局文件** 首先,我们需要为每个...

    SimpleAdapter实现ListView表格效果

    5. **自定义样式**:为了实现“绚丽的表格效果”,开发者可以通过修改布局文件中的样式属性(如背景色、字体大小、边框等)来自定义视觉效果。此外,还可以通过监听ListView的Item点击事件,添加交互效果。 在本...

    Android ListView卡片效果

    本文将深入探讨如何实现Android ListView的卡片效果,并结合提供的`CardListViewDemo`示例进行详细讲解。 首先,理解卡片效果的基本概念。卡片设计是现代UI设计中的一种流行趋势,它将信息封装在一块矩形区域中,...

    androidstudio最新版 实现ListView单选、多选效果最实用案例 亲试可用

    ListView中有一个属性:android:choiceMode,对应三个可选值: * singleChoice 单选 * multipleChoice 多选 ...在ListView的布局中设置了android:choiceMode属性后,item布局需要实现checkable,才有选中效果。

    Android实现表格效果

    这个"Android实现表格效果"的示例,主要围绕如何使用ListView来构建一个动态、灵活的表格布局。ListView是Android SDK中用于显示大量数据的视图组件,它可以高效地处理滚动和内存管理,非常适合用于创建类似表格的...

    Android中ListView添加头部

    在Android应用开发中,ListView是一种常用的控件,用于展示大量数据列表。它的可滚动特性使得它在各种场景下都非常实用,比如展示联系人、菜单项等。然而,仅仅使用ListView来展示列表数据并不足够,很多时候我们...

    android如果用ListView做一个表格形式

    3. **表格布局**: 要在ListView中创建表格效果,可以使用TableLayout或GridLayout。TableLayout允许你创建行和列,每个TableRow代表一行,里面包含多个TextView或其他View来展示数据。GridLayout则按网格布局,每个...

    Android使用ListView表格化显示数据的研究与应用.pdf

    【Android使用ListView表格化显示数据的研究与应用】 在Android应用开发中,ListView是常见的用于展示大量数据的组件,尤其在需要以表格形式呈现信息时。虽然Android提供了GridView控件,但其固定列宽的特性在某些...

    使用ListView控件实现漂亮的自定义表格效果实例源码

    总之,本实例源码提供了一个使用ListView实现自定义表格效果的范例,涉及到了Android开发中的数据绑定、视图复用、事件监听等多个关键知识点,对于学习和提高Android UI设计能力大有裨益。通过深入研究和实践,...

    安卓listview相关相关-listview实现表格效果表格线带假数据.rar

    本资料主要涉及如何使用ListView来实现表格效果,包括表格线的绘制以及填充假数据。下面将详细解释这个主题。 一、ListView概述 ListView是Android中一个可滚动的视图容器,它允许用户在一个垂直列表中显示多个项目...

    Android中使用ListView实现漂亮的表格效果

    以下是如何在Android中使用ListView实现漂亮的表格效果的详细步骤: 首先,我们需要定义颜色资源以区分不同的视觉效果。在`res/values/color.xml`文件中,定义了不同颜色的值,如深灰色、黑色、绿色和红色。绿色...

    使用ListView来实现表格

    要实现表格效果,我们可以创建一个包含多个TextView的LinearLayout作为ListView的item布局。每个TextView代表表格的一列,通过设置TextView的宽度和对齐方式,可以模拟出表格的列样式。如果需要多行文本,可以使用...

Global site tag (gtag.js) - Google Analytics