如何在Android应用程序中高效显示表格数据(医疗患者生命体征)?

时间:2015-12-22 14:12:08

标签: android

我正在开发一款Android应用,其中一项功能是显示患者的生命体征:

Timestamp|Heart Rate|SPO2|Resp./minute|ETC02|Systolic|Diastolic|Temp1|Temp2

现在,我正在表格中显示信息:

<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical">
    <TableLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:stretchColumns="1,2,3,4,5,6,7,8,9">
        <!--
            programmatically insert the table rows
        -->
    </TableLayout>
</ScrollView>

我对vitals进行数据库查询,将生命周期粘贴在List&lt;&gt;中,然后循环遍历列表以构建表行,我将其插入到TableLayout结构中,这是通过使用findViewById方法获得的

TableLayout vitalsTable = (TableLayout) findViewById(R.id.vitals_table);

此方法有效,但感觉非常糟糕

for(Vital vital : listOfVitals){
    int rowID = vitals.getId();

    TableRow newTableRow = new TableRow(context);
    TableRow.LayoutParams dataRowParams = new TableRow.LayoutParams();
    newTableRow.setLayoutParams(dataRowParams);

    TextView timeTextView = new TextView(context);
    timeTextView.setLayoutParams(new TableRow.LayoutParams(1));
    timeTextView.setText(vital.getTime());
    newTableRow.addView(timeTextView);
    newTableRow.setId(rowID);

    // The same for all 9 vitals

    vitalsTable.addView(newTableRow);
}

就像我说的,它有效,但感觉非常笨拙,而且很慢。我真的需要它在桌子上显示,这就是我走这条路的原因。

我在Android开发(以前的JSP开发人员)上非常新,所以我想我会检查是否有更好,更优雅的解决方案我应该使用。

修改 以下是我的数据从SQLite查询中看起来的样子。我将数据存储在List&lt; Vital&gt;:

12:00:01,60,98,37,52,94,84,98.6,98.4
12:00:02,60,98,37,52,94,84,98.6,98.4
12:00:03,60,98,37,52,94,84,98.6,98.4
12:00:04,60,98,37,52,94,84,98.6,98.4
12:00:05,60,98,37,52,94,84,98.6,98.4
12:00:06,60,98,37,52,94,84,98.6,98.4
12:00:07,60,98,37,52,94,84,98.6,98.4
12:00:08,60,98,37,52,94,84,98.6,98.4
12:00:09,60,98,37,52,94,84,98.6,98.4
12:00:10,60,98,37,52,94,84,98.6,98.4
and so on ...

3 个答案:

答案 0 :(得分:1)

<强> GridView的:

网格视图是显示此类数据的好方法。 Here you find basic tutorial for Grid View.

答案 1 :(得分:1)

如果您有大量数据以表格格式显示在屏幕中 然后转到横向模式并使用GridView而不是TableLayout。

答案 2 :(得分:1)

GridViews可能是您以表格形式显示数据的最佳选择。

为了让代码感觉不那么笨重,您可以创建自己的GridView对象来接收患者数据

public myGridView extends GridView {
    public myGridView(Vital v) {
        // Add each vital to your gridView
    }

    public addPatient(Vital v) {
        // Add another row of vitals to your gridView
    }
    // Any other needed methods
}

这至少会消除&#34; clunkyness&#34;来自你的代码!

我使用gridview和包含TextView和ImageView的自定义对象来向用户显示大量数据,并且它似乎快速且响应迅速。

GridViews基本上与您想象的一样,它们都在列中对齐,但棘手的部分是使所有布局设置正确,即使屏幕尺寸不同,所有内容也能很好地显示: ^)

Android的文档中的GridView示例在我看来非常好! Android - GridView