以编程方式将TableRows和TextViews添加到XML文件

时间:2015-05-30 15:42:50

标签: android mysql xml tableview tablerow

我正在尝试编写我的第一个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);
        }
    }
}

有人能帮助我吗? 谢谢!

0 个答案:

没有答案