如何用安卓编写类Excel的表格并填充数据

简介: 前段时间应运营需求要求做一个小Demo用来显示数据,在这个过程中,我学会了用代码来做出类似于Excel表格的显示效果,下面就和大家一起分享。 要做成表格形式的布局,很容易让我们想到表格布局,所以先要新建一个layout,在这个layout中我们放入两个TableLayout,其中一个是用来显示表格中的标题,而另一个TableLayout用来显示数据,考虑到可能显示的数据较多,所以外面包上一层ScrollView。

前段时间应运营需求要求做一个小Demo用来显示数据,在这个过程中,我学会了用代码来做出类似于Excel表格的显示效果,下面就和大家一起分享。


要做成表格形式的布局,很容易让我们想到表格布局,所以先要新建一个layout,在这个layout中我们放入两个TableLayout,其中一个是用来显示表格中的标题,而另一个TableLayout用来显示数据,考虑到可能显示的数据较多,所以外面包上一层ScrollView。主要代码如下:

<TableLayout
        android:id="@+id/tablelayout_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#ffdedcd2"
        android:stretchColumns="*" />

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@id/tablelayout_title"
        android:orientation="vertical">

        <TableLayout
            android:id="@+id/tablelayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#ffdedcd2"
            android:stretchColumns="*" />
    </ScrollView>
写好布局文件后,我们开始要填充数据了,也就是我代码中写到的addWidget()方法。数据的话我是造的json类型的假数据,并且新建对象类进行解析,这个就不多说了。先看主要的填充数据的代码。首先是表格的标题,也就是我们通常看到的表格最上方那一栏。主要代码如下:

for (int j = 0; j < 1; j++) {
    TableRow localTableRow1 = new TableRow(this);
    localTableRow1.setBackgroundColor(getResources().getColor(R.color.realtime_table_bg));
    for (int k = 0; k < this.column; k++) {
        TextView localTextView1 = new TextView(this);
        localTextView1.setWidth(this.viewWidth);
        localTextView1.setBackgroundResource(R.drawable.table_shape_title);
        localTextView1.setGravity(17);
        localTextView1.setTextSize(2, 16);
        localTextView1.setTextColor(getResources().getColor(R.color.white));
        localTextView1.getPaint().setFakeBoldText(true);
        localTextView1.setSingleLine();
        switch (k) {
            default:
                break;
            case 0:
                localTextView1.setText("A");
                localTableRow1.addView(localTextView1);
                break;
            case 1:
                localTextView1.setText("B");
                localTableRow1.addView(localTextView1);
                break;
            case 2:
                localTextView1.setText("C");
                localTableRow1.addView(localTextView1);
                break;
            case 3:
                localTextView1.setText("D");
                localTableRow1.addView(localTextView1);
                break;
            case 4:
                localTextView1.setText("E");
                localTableRow1.addView(localTextView1);
                break;
            case 5:
                localTextView1.setText("F");
                localTableRow1.addView(localTextView1);
                break;
            case 6:
                localTextView1.setText("G");
                localTableRow1.addView(localTextView1);
                break;
            case 7:
                localTextView1.setText("H");
                localTableRow1.addView(localTextView1);
        }
    }
    this.tb_title.addView(localTableRow1, new TableLayout.LayoutParams(-1, -2));
}
我们用两个for循环来实现这个数据的填充,最外层for循环之所以判断“j<1”,是因为我们这里只要一行就够了。我们在这里新建一个TabRow,然后再在这一行中添加列。里层的这个for循环中的column就是我们的列数,这里我们用A~H表达我们的列标题名称,通过一个for循环每次新建一个新的TextView,然后判断是第几列,根据位置依次加入我们的列名称。最后在tb_title,也就是我们标题对应的这个TableLayout中添加这些view。

同样的,下面的表格布局也是同样的用两个for循环来实现,只是最外层循环我们是要根据服务器传过来的列表大小来决定了。

因为我们手机通常是书评,可能导致显示不全或不便观看的问题,所以在setContentView()方法之前我加了一个判断,保证一进入这个页面就会显示为横屏:

if (getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
不过运行之后报错,后来发现是因为这个activity没有设置屏幕显示方向导致的,最后在清单文件里面加上下面这句代码就可以了。
android:screenOrientation="sensorLandscape"
表格布局的实现和运用就介绍到这里了,demo下载地址:http://download.csdn.net/detail/shan286/9475782

目录
相关文章
|
3天前
|
XML 存储 JSON
51. 【Android教程】JSON 数据解析
51. 【Android教程】JSON 数据解析
15 2
|
17天前
|
前端开发 Java
基于Java爬取微博数据(二) 正文长文本+导出数据Excel
【5月更文挑战第12天】基于Java爬取微博数据,正文长文本+导出数据Excel
|
17天前
|
数据库 Android开发
Android 通过升级SettingsProvider数据强制覆盖用户的设置项
Android 通过升级SettingsProvider数据强制覆盖用户的设置项 【5月更文挑战第7天】
32 5
|
22天前
|
Java 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口(下)
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口
138 0
|
22天前
|
Java 关系型数据库 MySQL
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口(上)
【MySQL × SpringBoot 突发奇想】全面实现流程 · xlsx文件,Excel表格导入数据库的接口
74 0
|
2天前
|
SQL 存储 数据可视化
excel表格sql数据库
Excel表格和SQL数据库是两种不同的数据管理工具,它们各自有自己的特点和用途。下面我将分别介绍它们,并探讨它们之间的关系和互操作性。 一、Excel表格 Excel是微软公司推出的一款
|
3天前
|
XML 存储 JavaScript
50. 【Android教程】xml 数据解析
50. 【Android教程】xml 数据解析
7 1
|
3天前
|
Android开发
09. 【Android教程】表格布局 TableLayout
09. 【Android教程】表格布局 TableLayout
9 0
分享:2秒快速查询40万手机号码归属地,批量手机号码归属地查询可以导出excel表格,WPS表格查询手机号码归属地怎么操作,批量手机号码归属地批量查询软件,批量号码查询按省份和城市分类,按运移动号码电信号码联通号码分类整理
本文介绍了如何批量快速查询手机号码归属地并进行分类。首先,通过提供的百度网盘或腾讯云盘链接下载免费查询软件。其次,开启软件,启用复制粘贴功能,直接粘贴号码列表并选择高速查询。软件能在极短时间内(如1.76秒内)完成40多万个号码的查询,结果包括归属地、运营商、邮箱和区号,且数据准确。之后,可直接导出数据至表格,若数据超过100万,可按省份、城市及运营商分类导出。文章还附带了操作动画演示,展示全程流畅的处理大量手机号码归属地查询的过程。
分享:2秒快速查询40万手机号码归属地,批量手机号码归属地查询可以导出excel表格,WPS表格查询手机号码归属地怎么操作,批量手机号码归属地批量查询软件,批量号码查询按省份和城市分类,按运移动号码电信号码联通号码分类整理
|
8天前
|
SQL 分布式计算 JavaScript
利用SparkSQL读写Excel数据
利用SparkSQL读写Excel数据
14 0