我正在开发一款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 ...
答案 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