gpt4 book ai didi

android - 通过 sql 循环将多个 TextView 动态添加到 TableRow

转载 作者:太空宇宙 更新时间:2023-11-03 13:51:22 25 4
gpt4 key购买 nike

我在这里找了又找,但我似乎无法解决这个问题。我有一个 ScrollView,在 ScrollView 里面是一个 LinearLayout,我想读取我的 SQL 数据库并像这样显示结果;

Linear Layout
ScrollView
Linear Layout
TableRow
TextView
TextView
TableRow
TextView
TextView
/Linear Layout
/ScrollView
/LinearLayout

我的代码如下:

TableRow tRow;
ContextThemeWrapper ttRow = new ContextThemeWrapper(this, R.style.coreTable);
LinearLayout LL = (LinearLayout) findViewById(R.id.linearCores);
LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);



if (cores.moveToFirst()) {
while (cores.isAfterLast() == false) {
Log.e("CORE LIST", cores.getString(1));
tRow = new TableRow(ttRow);
tRow.setLayoutParams(lp);
tRow.setOrientation(TableRow.VERTICAL);
tRow.setId(cores.getInt(0));
tRow.setBackgroundResource(R.drawable.shape_border);
ContextThemeWrapper newTxtA = new ContextThemeWrapper(this, R.style.coreHeaderView);
TextView tTextA = new TextView(newTxtA);
tTextA.setLayoutParams(lp);
tTextA.setText(cores.getString(1) + " (Lvl " + cores.getString(2) + ")");
tRow.addView(tTextA);
TextView tTextB = new TextView(coreChooser.this);
tTextB.setLayoutParams(lp);
tTextB.setText(cores.getString(5));
tRow.addView(tTextB);
LL.addView(tRow);
cores.moveToNext();
}
}

在我的模拟器上,它显示了第一个 tRow.addView,但没有显示其余部分,但是背景似乎延伸到了屏幕之外。

我真的不确定我在这里做错了什么。

最佳答案

TableRow 的文档陈述如下:

A TableRow should always be used as a child of a TableLayout. If a TableRow's parent is not a TableLayout, the TableRow will behave as an horizontal LinearLayout.

如果您的目的只是为了能够让每对 TextView 共享公共(public)背景 R.drawable.shape_border,那么请使用嵌套的 LinearLayout 代替 TableRow(TableRow 是从 LinearLayout 扩展而来的)。

或者,如果您绝对想使用 TableRow 的某些特定功能,则将 R.id.linearCores 设为 TableLayout 而不是一个 LinearLayout

关于android - 通过 sql 循环将多个 TextView 动态添加到 TableRow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34538007/

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