我正在尝试在Android UI中的表格中显示来自板载SQLite数据库的数据,但它无法正常工作。这就是我所拥有的:
activity_main.xml中
<TableLayout
android:id="@+id/data_table"
android:stretchColumns="3"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TableRow>
<TextView android:layout_column="1" android:text="id" android:layout_width="0dp" android:layout_weight="1" />
<TextView android:layout_column="2" android:text="firstname" android:layout_width="0dp" android:layout_weight="1" />
<TextView android:layout_column="3" android:text="lastname" android:layout_width="0dp" android:layout_weight="1" />
</TableRow>
</TableLayout>
MainActivity.java
List<People> listOfPeople = databaseHelper.getAllPeople();
TableLayout myTableLayout = (TableLayout) findViewById(R.id.data_table);
for(People person : listOfPeople){
TableRow newTableRow = new TableRow(this);
TableRow.LayoutParams rowParams = new TableRow.LayoutParams();
newTableRow.setLayoutParams(rowParams);
TextView idTV = new TextView(this);
idTV.setLayoutParams(new TableRow.LayoutParams(1));
idTV.setText(person.getId());
TextView firstnameTV = new TextView(this);
firstnameTV.setLayoutParams(new TableRow.LayoutParams(2));
firstnameTV.setText(person.getFirstname());
TextView lastnameTV = new TextView(this);
lastnameTV.setLayoutParams(new TableRow.LayoutParams(3));
lastnameTV.setText(person.getLastname());
newTableRow.addView(idTV);
newTableRow.addView(firstnameTV);
newTableRow.addView(lastnameTV);
myTableLayout.addView(newTableRow);
}
显示表和数据,但是我从数据库构建的行中的数据全部被一起扫描并且不可读。如果我将其与Web开发进行比较,看起来所有数据都在表行的一个单元格中。
我是Android开发人员(以前的JSP开发人员)的新手,我在这里,我试图拼凑谷歌搜索。我需要使用TableLayout,因此网格布局(或任何其他布局)不会这样做。
修改
我为我的“细胞”添加了一些背景颜色,发现它们位于不同的细胞中。显然,问题是他们没有正确分发自己,因为我不确定如何在Java中的单元格中添加“layout_width”和“layout_weight”。至少,我猜这就是问题所在。
答案 0 :(得分:0)
只需将您的xml更改为:
<TableLayout
android:id="@+id/data_table" android:stretchColumns="1"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TableRow>
<TextView android:layout_column="1" android:layout_weight="1" android:text="id" />
<TextView android:layout_column="2" android:layout_weight="1" android:text="firstname" />
<TextView android:layout_column="3" android:layout_weight="1" android:text="lastname" />
</TableRow>
对于java代码添加的所有TextView,确保将layout_weight设置为1。