表格是很常用的控件,Android本身提供了TableLayout供布局实现。但本文介绍另外一种思路,用动态布局的方式实现,这种方式更灵活,内容、样式能高度扩展,熟练的人可随意运用到任何视图复用的场景。使用滚动条避免显示不完全问题。

效果图:

Android表格控件动态生成表格_第1张图片

核心代码如下:

public class DriveRecordAcivity extends Fragment{private View view = null;private LinearLayout  wr_areas;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {view=inflater.inflate(R.layout.driverecord_activity, null);wr_areas=(LinearLayout) view.findViewById(R.id.wr_areas);if(ApplicationUtils.getCheckedFcRecord(new DBAdapter(view.getContext()))!=null){ List titleData=ApplicationUtils.getCheckedFcRecord(new DBAdapter(view.getContext())); showData(titleData);}return view;}/** * 发车数据动态添加状态 */private void showData(List titleData) {for (int i = 0; i < titleData.size(); i++) {final CheckedFcRecord pojo = titleData.get(i);LinearLayout llWashingRoomItem = new LinearLayout(view.getContext());llWashingRoomItem.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));llWashingRoomItem = (LinearLayout) getActivity().getLayoutInflater().inflate(R.layout.checkedfcrecord_template, null);TextView time = (TextView) llWashingRoomItem.findViewById(R.id.time);TextView vhclNo = (TextView) llWashingRoomItem.findViewById(R.id.vhclNo);TextView jpy = (TextView) llWashingRoomItem.findViewById(R.id.jpy);TextView ticket = (TextView) llWashingRoomItem.findViewById(R.id.ticket);time.setText(DateTools.getStringFromDate(pojo.getFcTime(),null));vhclNo.setText(pojo.getVhcl_no());jpy.setText(pojo.getJsy_name());//Integer类型需要转换用.toString()不然报错ticket.setText(pojo.getJps().toString());//动态设置layout_weight权重设置表格宽度LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1.6f);  time.setLayoutParams(lp);  lp = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1f);  vhclNo.setLayoutParams(lp);  lp = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 0.8f);  jpy.setLayoutParams(lp);  lp = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 0.8f);  ticket.setLayoutParams(lp);  wr_areas.addView(llWashingRoomItem);}}}

上面是运用到项目中,动态获取数据。测试源码中的是手动添加的数据。

xml布局如下:

                                                                                                                                 

Android表格控件动态生成表格_第2张图片

定义可重用的视图部分,xml文件如下:

<?xml version="1.0" encoding="utf-8"?>                                                                                                            

 

Android表格控件动态生成表格_第3张图片

最后附上源码Eclipse版本:
点击下载

更多相关文章

  1. android 自定义封装android 6.0以上动态权限添加工具类
  2. android menu 实现动态修改menu。(gray)
  3. Flutter 新闻客户端 - 11 APP升级、android动态授权
  4. Kotlin-->自定义评分控件RatingBar
  5. 关于Android PopupWindow中实用Spinner控件点击APP Crash情况整
  6. 在android中利用多线程实现对控件的更新(动态修改文本框中的值)。
  7. 中秋深夜码字,完成了一个底部导航栏(Android自定义控件),一键添加
  8. Android控件_TextView(显示文本框控件)
  9. Android控件笔记——多状态按钮ToggleButton

随机推荐

  1. Python 的高级用法
  2. Python中容器类型转换的三种方法
  3. 使用 Lightly 在线格式化 HTML
  4. php用户登录,异步提交表单注册
  5. 属性与方法重载和命名空间与类自动加载器
  6. Python公共操作的4个运算符(+、*、in、not
  7. 有序列表、无序列表、定义列表、a标签、
  8. 会话控制 -(一)COOKIE/SESSION
  9. 实例演示数据库的增删改查操作
  10. python 包之 retrying 重复回调教程