今天工作任务提前完成了,就抽空更新一下博客,这篇博客以前我在其他论坛上发表过,今天有空就把它拉过来;制作表格一般来讲都是一条一条数据垂直显示,今天我们就将表格数据水平分布显示;下面请看效果图:

一、两种实现方法

1.通过list数据源在textview中进行横向赋值操作。

大家先看看布局文件:

android:id="@+id/relativeLayout1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal" >

android:id="@+id/detail_project1_tv"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_weight="1"

android:text="项目"

android:textSize="20sp"

android:background="@drawable/textviewborder"

android:gravity="center"

android:textColor="@color/black" />

android:id="@+id/detail_params1_tv"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_weight="1"

android:text="参数"

android:textSize="20sp"

android:background="@drawable/textviewborder"

android:gravity="center"

android:textColor="@color/black" />

android:id="@+id/detail_project2_tv"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_weight="1"

android:text="项目"

android:textSize="20sp"

android:background="@drawable/textviewborder"

android:gravity="center"

android:textColor="@color/black" />

android:id="@+id/detail_params2_tv"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_weight="1"

android:text="参数"

android:textSize="20sp"

android:background="@drawable/textviewborder"

android:gravity="center"

android:textColor="@color/black" />

给textview加上边框:

布局文件没什么多讲的,很简单,一目了然。

再看看adapter代码:

public class OrderMealDetailAdapter extends BaseAdapter {

private LayoutInflater mInflater;

public Context context;

public List nutrientList = null;

public OrderMealDetailAdapter(Context context) {

this.context = context;

this.mInflater = LayoutInflater.from(this.context);

}

@Override

public int getCount() {

// TODO Auto-generated method stub

if (nutrientList != null)

return nutrientList.size();

else

return 0;

}

@Override

public Object getItem(int position) {

// TODO Auto-generated method stub

if (nutrientList != null)

return nutrientList.get(position);

else

return null;

}

@Override

public long getItemId(int position) {

// TODO Auto-generated method stub

if (nutrientList != null)

return position;

else

return 0;

}

@Override

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

// TODO Auto-generated method stub

Holder holder = null;

if (convertView == null) {

convertView = mInflater.inflate(R.layout.ordermeal_detail_item,

null);

holder = new Holder();

holder.detail_project1_tv = (TextView) convertView

.findViewById(R.id.detail_project1_tv);

holder.detail_params1_tv = (TextView) convertView

.findViewById(R.id.detail_params1_tv);

holder.detail_project2_tv = (TextView) convertView

.findViewById(R.id.detail_project2_tv);

holder.detail_params2_tv = (TextView) convertView

.findViewById(R.id.detail_params2_tv);

convertView.setTag(holder);

} else {

holder = (Holder) convertView.getTag();

}

//换行进行横向数据填充

if (position % 2 == 0) {

//填充一行中前两个元素

holder.detail_project1_tv

.setText(nutrientList.get(position).project);

holder.detail_params1_tv

.setText(nutrientList.get(position).element);

holder.detail_project1_tv.setVisibility(View.VISIBLE);

holder.detail_params1_tv.setVisibility(View.VISIBLE);

//填充一行中后两个元素

if (nutrientList.size() > position + 1) {

holder.detail_project2_tv.setText(nutrientList

.get(position + 1).project);

holder.detail_params2_tv

.setText(nutrientList.get(position + 1).element);

holder.detail_project2_tv.setVisibility(View.VISIBLE);

holder.detail_params2_tv.setVisibility(View.VISIBLE);

} else {

//没有可填充数据

holder.detail_project2_tv.setText("");

holder.detail_params2_tv.setText("");

}

} else {

//把后一行的数据移到前一行来,后一行隐藏操作

holder.detail_project1_tv.setVisibility(View.GONE);

holder.detail_params1_tv.setVisibility(View.GONE);

holder.detail_project2_tv.setVisibility(View.GONE);

holder.detail_params2_tv.setVisibility(View.GONE);

}

return convertView;

}

class Holder {

TextView detail_project1_tv; // 项目1

TextView detail_params1_tv; // 参数1

TextView detail_project2_tv;

TextView detail_params2_tv;

}

// 退出

public void exit() {

nutrientList = null;

notifyDataSetChanged();

mInflater = null;

context = null;

}

看到注释大家都明白了吧,哈哈,有什么疑问大家可以留言;

PS:例子里面仅使用了表格水平排列2排的操作,如果大家有N排的操作,大家只需要修改布局文件添加N个TextView,然后在getView中if (position % 2 == 0)中做N次判断就ok了。

2.通过循环,迭代tablerow进行横向赋值。

1

转眼就到了下班的时间了,今天就讲到这里,谢谢大家。 转自:

http://www.u3dblog.com/?p=315

android动态显示表格数据,android中水平显示表格数据相关推荐

  1. 帆软当表格无数据时不显示表格并显示无数据

    帆软当表格无数据时不显示表格并显示无数据 1.设置隐藏表格 2.显示无数据三个字 1.设置隐藏表格 选择要隐藏的表格的 每一行的最左个单元格中 在右侧设置条件属性 注意选择要公式 当A8没有数据时,行 ...

  2. 表格在整个html居中显示,html 表格字符居中显示_如何在HTML中居中显示表格?

    html 表格字符居中显示_如何在HTML中居中显示表格? html 表格字符居中显示_如何在HTML中居中显示表格? html 表格字符居中显示 HTML table provides the ab ...

  3. WPF:使用Json.NET在TreeView中树形显示JSON数据

    原文 WPF:使用Json.NET在TreeView中树形显示JSON数据 据 读者可以参考这个开源的可以树形显示XML和JSON的工具: Mgen Object 603:XML/JSON树形显示小工 ...

  4. java poi生成的word表格在wps中的显示问题

    java poi生成的word表格在wps中的显示问题 问题描述: poi导出的word文档使用office打开效果正常: poi导出的word文档使用wps打开效果异常: 问题分析: 1.怀疑是合并 ...

  5. word表格分开快捷键_在Word 表格的编辑中,快速拆分表格应按快捷键为______。

    [单选题]在Word文档中,如果要指定每页中的行数,可以通过_____进行设置. [简答题]要求把任务点的所有课程笔记都上传,拍照上传. [单选题]在Word文档中,有一个段落的最后一行只有一个字符, ...

  6. pandas使用duplicated函数删除dataframe中重复列名称的数据列、默认保留重复数据列中的第一个数据列(removing duplicate columns in dataframe)

    pandas使用duplicated函数删除dataframe中重复列名称的数据列.默认保留重复数据列中的第一个数据列(removing duplicate columns in dataframe) ...

  7. html表格内框线怎么设置颜色,word表格样式 Word中如何设置表格的边框线样式和颜色...

    word表格样式 Word中如何设置表格的边框线样式和颜色,平凡的世界平凡的你,努力学习使我们变得不平凡,今天要介绍的知识是word表格样式的相关知识,你准备好学习word表格样式 Word中如何设置 ...

  8. 中livechart显示大数据_Servlet中利用jdbc加载显示数据

    基本分层思路是 已经完成查询所有新闻的方法在DAO中 最后将数据返回 现在我们去service中完成代码,先准备一个接口 编写一个实现类 编写代码,在Service中只会出现Dao的东西 然后在我们之 ...

  9. html5 操作excel,html5读取excel表格/在Excel中,一个表格引用另一个表格的数据,用哪些公式进行操作?...

    如何在一个excel表格中获取另一个excel表格中的表格一的表格名并且引用这个表格中的数据? 写代码来实现! 在Excel中,一个表格引用另一个表格的数据,用哪些公式进行操作? 在Excel中,一格 ...

最新文章

  1. leetcode 10 Regular Expression Matching
  2. 印象笔记设计经理王怀千:全栈设计师的职业本质
  3. 拦截器 java_在Java后端如何添加拦截器
  4. 错误三次无法输入c语言,不懂就问,为啥错误输入三次不停止呢
  5. np.reshape带给我的内存错误
  6. Java获取当前线程的名字以及为线程命名
  7. mysql数据库有触发器吗_MySQL数据库之MySQL 触发器实现
  8. BugkuCTF-PWN题pwn5-overflow2超详细讲解
  9. javascript单元测试:jasminejs 2.0的烦恼
  10. 利用lz78编码实现对某字符序列的二元压缩_多媒体笔记(1):文件压缩的原理...
  11. 基于图像识别的火灾检测系统设计
  12. 异数OS 织梦师-水母(一)--消息队列篇
  13. 方舟原始恐惧mod生物代码_《暗黑地牢》《方块方舟》周末免费试玩,多款游戏历史新低特惠...
  14. Mybatis的四种分页方式详解
  15. 输入字符串判断有多少个字母,数字和其他
  16. 使用OpenCV训练好的级联分类器识别人脸
  17. Dubbo 配置http协议
  18. (三)零基础入门C语言 --- C语言之入门课程
  19. 小白学习之路,网络编程(上)
  20. 2020考研-王道数据结构-图-图的遍历

热门文章

  1. 看了《天道》,我买了这套书,据说有八卷
  2. 百度违规屏蔽关键词工具
  3. 基于springboot的高校疫情打卡上报系统设计与实现 文档+项目源码及数据库文件+演示视频
  4. LHG 弹层问题汇总
  5. 玩纸牌游戏计算机教案,小班数学活动好玩的扑克牌教案
  6. 工具篇:这可能是全 GitHub 最牛逼的抢票神器!
  7. 【设计模式】设计原则:CARP 合成复用原则
  8. 快速转行做产品经理系列基础篇:1、中国互联网发展史简述
  9. 【ENOVIA 服务包】知识重用解决方案 | 达索系统百世慧®
  10. 应该了解的世界思想名著