我正在尝试编写我的第一个Android应用程序并且因为无法显示数据而陷入困境。 基本上我有一个数据库来存储有关费用(id,日期,类别,价格和信息/描述)的一些细节,我没有插入数据的问题。 现在我希望有一个页面/活动来显示所有数据库,所以我想创建一个只包含表格的XML文件,然后以dinamically方式添加我需要显示所有结果的行。我在StackOverflow上找到了一些代码,但它不起作用,每次打开活动时我都看不到任何东西(但我确定数据库中有条目,因为我有另一个页面总计了总量按类别花的钱,一切都很好。
我发布了代码:
activity_display_database.xml
<ScrollView android:id="@+id/scrl_database"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="none">
<TableLayout android:id="@+id/database_table"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stretchColumns="5">
<!-- header: i put buttons because in future they should order the results-->
<TableRow
style="?android:attr/buttonBarButtonStyle"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="5dp">
<Button android:id="@+id/database_id_tag"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/database_id_tag"
android:onClick="displayAll"/>
<Button android:id="@+id/database_date_tag"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/database_date_tag" />
<Button android:id="@+id/database_category_tag"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/database_category_tag" />
<Button android:id="@+id/database_price_tag"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/database_price_tag" />
<Button android:id="@+id/database_info_tag"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/database_info_tag" />
</TableRow>
</TableLayout>
</ScrollView>
DisplayDatabase.java 它在输入中接收查询结果的光标,并将这些结果放在已创建的表中的行中
public void displayDatabase(Cursor crs){
/* Find Tablelayout defined in main.xml */
TableLayout database_table = (TableLayout) findViewById(R.id.database_table);
if (crs == null){
Toast.makeText(this, "cursor null", Toast.LENGTH_LONG).show();
} else {
// for loop to scan the entries of the database
for (crs.moveToFirst(); !crs.isAfterLast(); crs.moveToNext()) {
TableRow database_row = new TableRow(ctx);
for (int column_number = 0; column_number < COLUMNS_NUMBER; column_number++){
TextView a_slot = new TextView(this);
a_slot.setText(crs.getString(column_number));
database_row.addView(a_slot);
}
database_table.addView(database_row);
}
}
}
有人能帮助我吗? 谢谢!