Android listView 绘制表格实例详解

Android  listView 绘制表格

效果图:

二,创建步骤:

1,创建布局:

activity_main中的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_margin="3dip" android:layout_width="match_parent" android:layout_height="match_parent" > <View android:layout_width="match_parent" android:layout_height="1dip" android:background="#A7A5A5"/> <!--调用外部控件的布局list_item布局。--!> <include layout="@layout/list_item" android:id="@+id/table_title"/> <View android:layout_width="match_parent" android:layout_height="1.5dip" android:background="#686867"/> <ListView android:id="@+id/list" android:divider="#B4B3B3" android:dividerHeight="1.0dip" android:scrollbars="none" android:background="@drawable/listview_bg" android:cacheColorHint="@android:color/transparent" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="wrap_content" > </ListView> </LinearLayout>

2,创建list_item布局:

<?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/text_id" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:paddingBottom="10dip" android:paddingTop="10dip" android:textColor="#000000" android:textSize="15sp" android:singleLine="true" android:text="序号" /> <View android:layout_width="1.5dip" android:layout_height="fill_parent" android:background="#B4B3B3"/> <TextView android:id="@+id/text_goods_name" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="3" android:paddingBottom="10dip" android:paddingTop="10dip" android:textColor="#000000" android:textSize="15sp" android:singleLine="true" android:gravity="center" android:text="商品名称" /> <View android:layout_width="1.5dip" android:layout_height="fill_parent" android:background="#B4B3B3"/> <TextView android:id="@+id/text_codeBar" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="2" android:paddingBottom="10dip" android:textColor="#000000" android:paddingTop="10dip" android:singleLine="true" android:textSize="15sp" android:gravity="center" android:text="条形码" /> <View android:layout_width="1.5dip" android:layout_height="fill_parent" android:background="#B4B3B3"/> <TextView android:id="@+id/text_num" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:paddingBottom="10dip" android:paddingTop="10dip" android:textColor="#000000" android:singleLine="true" android:textSize="15sp" android:gravity="center" android:text="数量" /> <View android:layout_width="1.5dip" android:layout_height="fill_parent" android:background="#B4B3B3"/> <TextView android:id="@+id/text_curPrice" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1.5" android:paddingBottom="10dip" android:textColor="#000000" android:textSize="15sp" android:singleLine="true" android:paddingTop="10dip" android:gravity="center" android:text="现价" /> <View android:layout_width="1.5dip" android:layout_height="fill_parent" android:background="#B4B3B3"/> <TextView android:id="@+id/text_money" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1.5" android:paddingBottom="10dip" android:singleLine="true" android:textSize="15sp" android:textColor="#000000" android:paddingTop="10dip" android:gravity="center" android:text="金额" /> </LinearLayout>

3,适配器中内容:

TableAdapter:

package com.example.listviewtable; import java.util.List; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; public class TableAdapter extends BaseAdapter { private List<Goods> list; private LayoutInflater inflater; public TableAdapter(Context context, List<Goods> list){ this.list = list; inflater = LayoutInflater.from(context); } @Override public int getCount() { int ret = 0; if(list!=null){ ret = list.size(); } return ret; } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { Goods goods = (Goods) this.getItem(position); ViewHolder viewHolder; if(convertView == null){ viewHolder = new ViewHolder(); convertView = inflater.inflate(R.layout.list_item, null); viewHolder.goodId = (TextView) convertView.findViewById(R.id.text_id); viewHolder.goodName = (TextView) convertView.findViewById(R.id.text_goods_name); viewHolder.goodCodeBar = (TextView) convertView.findViewById(R.id.text_codeBar); viewHolder.goodNum = (TextView) convertView.findViewById(R.id.text_num); viewHolder.goodCurrPrice = (TextView) convertView.findViewById(R.id.text_curPrice); viewHolder.goodMoney = (TextView) convertView.findViewById(R.id.text_money); convertView.setTag(viewHolder); }else{ viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.goodId.setText(goods.getId()); viewHolder.goodId.setTextSize(13); viewHolder.goodName.setText(goods.getGoodsName()); viewHolder.goodName.setTextSize(13); viewHolder.goodCodeBar.setText(goods.getCodeBar()); viewHolder.goodCodeBar.setTextSize(13); viewHolder.goodNum.setText(goods.getNum()+""); viewHolder.goodNum.setTextSize(13); viewHolder.goodCurrPrice.setText(goods.getCurPrice()+""); viewHolder.goodCurrPrice.setTextSize(13); viewHolder.goodMoney.setText(goods.getMoney()+""); viewHolder.goodMoney.setTextSize(13); return convertView; } public static class ViewHolder{ public TextView goodId; public TextView goodName; public TextView goodCodeBar; public TextView goodNum; public TextView goodCurrPrice; public TextView goodMoney; } }

4,Activity中内容:

package com.example.listviewtable; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.view.ViewGroup; import android.widget.ListView; public class ListTableActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //设置表格标题的背景颜色 ViewGroup tableTitle = (ViewGroup) findViewById(R.id.table_title); tableTitle.setBackgroundColor(Color.rgb(177, 173, 172)); List<Goods> list = new ArrayList<Goods>(); list.add(new Goods("01", "伊利婴儿加盖奶粉110ml", "982323423232",34,23,23)); list.add(new Goods("02", "鱼翅", "31312323223",34,23,23)); list.add(new Goods("03", "农夫山泉", "12",34,23,23)); list.add(new Goods("04", "飞天茅台0", "12333435445",34,23,23)); list.add(new Goods("05", "农家小菜", "34523",34,23,23)); list.add(new Goods("06", "飞天消费菜", "345456",34,23,23)); list.add(new Goods("07", "旺仔小牛奶", "2344",34,23,23)); list.add(new Goods("08", "旺旺", "23445",34,23,23)); list.add(new Goods("09", "达利园超时牛奶", "3234345",34,23,23)); ListView tableListView = (ListView) findViewById(R.id.list); TableAdapter adapter = new TableAdapter(this, list); tableListView.setAdapter(adapter); } }

5,实体类:

商品信息内容:

package com.example.listviewtable; public class Goods { private String id; private String goodsName; private String codeBar; private float num; private float curPrice; private float money; public Goods() { super(); } public Goods(String id, String goodsName, String codeBar, float num, float curPrice, float money) { super(); this.id = id; this.goodsName = goodsName; this.codeBar = codeBar; this.num = num; this.curPrice = curPrice; this.money = money; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getGoodsName() { return goodsName; } public void setGoodsName(String goodsName) { this.goodsName = goodsName; } public String getCodeBar() { return codeBar; } public void setCodeBar(String codeBar) { this.codeBar = codeBar; } public float getNum() { return num; } public void setNum(float num) { this.num = num; } public float getCurPrice() { return curPrice; } public void setCurPrice(float curPrice) { this.curPrice = curPrice; } public float getMoney() { return money; } public void setMoney(float money) { this.money = money; } }

DEMO地址:http://xiazai.jb51.net/201701/yuanma/ListViewTable-master(jb51.net).rar

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

时间: 2024-09-28 06:16:35

Android listView 绘制表格实例详解的相关文章

Android编程之SurfaceView实例详解_Android

本文实例讲述了Android编程之SurfaceView用法.分享给大家供大家参考,具体如下: 关于surfaceView相关知识: View和SurfaceView主要区别: 1. View只能在UI线程中刷新,而SurfaceView可以在子线程中刷新 2. SurfaceView可以控制刷新频率 SurfaceView几个重要的方法: 1. 继承SurfaceView 后调用getHolder()方法可以获取到mSurfaceHolder对象这个对于可以控制SurfaceView的绘制 2

Android的搜索框架实例详解_Android

基础知识 Android的搜索框架将代您管理的搜索对话框,您不需要自己去开发一个搜索框,不需要担心要把搜索框放什么位置,也不需要担心搜索框影响您当前的界面.所有的这些工作都由SearchManager类来为您处理(以下简称"搜索管理器"),它管理的Android搜索对话框的整个生命周期,并执行您的应用程序将发送的搜索请求,返回相应的搜索关键字. 当用户执行一个搜索,搜索管理器将使用一个专门的Intent把搜索查询的关键字传给您在配置文件中配置的处理搜索结果的Activity.从本质上讲

Android的搜索框架实例详解

基础知识 Android的搜索框架将代您管理的搜索对话框,您不需要自己去开发一个搜索框,不需要担心要把搜索框放什么位置,也不需要担心搜索框影响您当前的界面.所有的这些工作都由SearchManager类来为您处理(以下简称"搜索管理器"),它管理的Android搜索对话框的整个生命周期,并执行您的应用程序将发送的搜索请求,返回相应的搜索关键字. 当用户执行一个搜索,搜索管理器将使用一个专门的Intent把搜索查询的关键字传给您在配置文件中配置的处理搜索结果的Activity.从本质上讲

android 显示gif图片实例详解

  android 显示gif图片实例详解           在android中不支持gif格式的图片,但是由于我希望在我的程序中刚刚加载的时候有一个小人在跑步表示正在加载.而这个小人跑就是一个gif图片.也就是希望程序一启动时就加载gif图片.在网上查找了一些方法不知道是我使用的android的版本高(android4.4)还是什么问题就是加载不出来.最后想了一个办法加载了出来.这个办法就是将gif放在webView中让其显示. 下面是关于这个的代码: activity_prepare_fu

Java中的instanceof关键字在Android中的用法实例详解_java

在下面介绍Android中如何使用instanceof关键字开发更方便时,先来温习一下java中instanceof的概念. instanceof大部分的概念是这样定义的:instanceof是Java的一个二元操作符,和==,>,<是同一类东西.由于它是由字母组成的,所以也是Java的保留关键字.它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据.举个栗子: String s = "I AM an Object!"; boolean isObj

Android 判断网络状态实例详解

Android 判断网络状态实例详解 实例代码 package com.example.android; import java.io.IOException; import java.net.HttpURLConnection; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.net.URL; import java.util.

Android 帧动画的实例详解

Android 帧动画的实例详解 对于 Android 帧动画 大体上可以理解成 一张张图片 按一定顺序切换, 这样当连续几张图是一组动画时,就可以连起来了看成是一个小电影,你懂得 好得,比就装到这里,下面开始进入正题,由于产品需求 需要做一个 声音喇叭动态切换的样式,我特么第一就想到是帧动画切换,然后就百度了一些资料,发现 真的, 现在这个网上太多的资料是 copy粘贴过来的, 一错全错,对于这种情况我只想说,made,一群垃圾, 所以今天我将带你们走进Android 正确帧动画地址. 第一步

Android开发之Android.mk模板的实例详解

Android开发之Android.mk模板的实例详解 关于Android NDK开发的文章已经比较多了,我的博客中也分享了很多NDK开发相关经验和技巧,今天简单写了一个 Android.mk 的示例模板,供初学者参考. 本模板主要给大家示例 Android NDK 开发中的如下几个问题: 1. 如何自动添加需要编译的源文件列表   2. 如何添加第三方静态库.动态库的依赖   3. 如何构造一个完整的NDK工程框架 假设我们的项目依赖 libmath.a, libjson.a, libffmp

Android 中 ActivityLifecycleCallbacks的实例详解

Android 中 ActivityLifecycleCallbacks的实例详解 以上就是使用ActivityLifecycleCallbacks的实例,代码注释写的很清楚大家可以参考下, MyApplication如下: package com.cc; import java.util.LinkedList; import android.app.Activity; import android.app.Application; import android.os.Bundle; /** *