gpt4 book ai didi

安卓 : Dynamic TableLayout

转载 作者:行者123 更新时间:2023-11-30 02:15:56 26 4
gpt4 key购买 nike

我的目标是从数据库中获取数据,然后在我的应用程序中将其显示为表格。

这是我的代码:

 public void updateLastExpenses(){
Cursor c = Expense.getAll(this);

TableLayout lastExpensesTable = (TableLayout)findViewById(R.id.lastExpensesTable);

lastExpensesTable.setStretchAllColumns(true);

while (c.moveToNext()) {

String name = c.getString(
c.getColumnIndexOrThrow(ExpenseContract.ExpenseEntry.COLUMN_NAME_NAME)
);
float amount = c.getFloat(
c.getColumnIndexOrThrow(ExpenseContract.ExpenseEntry.COLUMN_NAME_AMOUNT)
);

String date = c.getString(
c.getColumnIndexOrThrow(ExpenseContract.ExpenseEntry.COLUMN_NAME_DATE)
);

TableRow tr = new TableRow(this);

TextView c1 = new TextView(this);
c1.setText(name);
c1.setBackgroundColor(Color.RED);

TextView c2 = new TextView(this);
c2.setText(""+amount);
c2.setBackgroundColor(Color.BLUE);


tr.addView(c1);
tr.addView(c2);

lastExpensesTable.addView(tr);

}

}

这是我的 TableLayout:

<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/lastExpensesTable">
<TableRow
android:id="@+id/lastExpensesTableRow"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/lastExpensesTableName"
android:text="@string/last_expenses_table_name"/>
<TextView />
<TextView
android:id="@+id/lastExpensesTableAmount"
android:text="@string/last_expenses_table_amount"/>
<TextView />
</TableRow>
</TableLayout>

但这是结果:

enter image description here

你知道为什么内容都在“名称”栏中,而不是分成两栏吗?有没有更简洁的方法(我猜是通过使用布局并避免 .java 文件中的样式?)

提前致谢。

最佳答案

您的布局中有一个杂散的 TextView

    <TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/lastExpensesTable">
<TableRow
android:id="@+id/lastExpensesTableRow"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- first column -->
<TextView
android:id="@+id/lastExpensesTableName"
android:text="@string/last_expenses_table_name"/>
<!-- second column -->
<TextView />
<!-- third column -->
<TextView
android:id="@+id/lastExpensesTableAmount"
android:text="@string/last_expenses_table_amount"/>
</TableRow>
</TableLayout>

取出标记为“第二列”的 TextView,一切就绪。

关于安卓 : Dynamic TableLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29336880/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com