gpt4 book ai didi

android - 如何在 Android 中创建具有动态行数的表

转载 作者:行者123 更新时间:2023-11-29 01:51:13 25 4
gpt4 key购买 nike

我试图用基于图标数组的动态行数填充 TableLayout,但是我无法让这些行显示在屏幕上。该表应显示一个 5x3 的图标网格。我使用的代码如下:

    Services serv = new Services();

Item[] iconArray = serv.getIcons();

TableLayout table = (TableLayout) findViewById(R.id.table1);

int rowNum = iconArray.length/5;
TableRow rows[]= new TableRow[rowNum];

int count = 0;
for (int i = 0; i < iconArray.length; i++) {
final String name = iconArray[i].name;
final int icon = iconArray[i].icon;

LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
View v = inflater.inflate(R.layout.icon, null,false);
TextView text = (TextView) v.findViewById(R.id.text);
text.setText(name);

ImageView imageicon = (ImageView) v.findViewById(R.id.icon);
imageicon.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//Do some stuff
}
});
Drawable drawicon = getResources().getDrawable(icon);
imageicon.setBackgroundDrawable(drawicon);

if(i == 4) //End of Row
{
count++;
}
if(i == 9) //End of Row2
{
count++;
}

rows[count] = new TableRow(this);
rows[count].addView(v);
table.addView(rows[count]);
}

这不会向屏幕输出任何内容,并且 TableLayout 保持为空。谁能告诉我我的路线是否正确?

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

首先,我会为我的行做一个特定的布局:

my_row.xml

<?xml version="1.0" encoding="utf-8"?>
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myRow"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:weightSum="1" >

<ImageView
android:id="@+id/myImg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

<TextView
android:id="@+id/myText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"" />

</TableRow>

然后,我将简单地用循环中的行填充我的表:

static TableRow row;
Item[] iconArray = serv.getIcons();
TableLayout table = (TableLayout) myView.findViewById(R.id.table1);

for (int i = 0; i < iconArray.length; i++) {

LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
row = (TableRow) inflater.inflate(R.layout.my_row, cont, false);

final String name = iconArray[i].name;
final int icon = iconArray[i].icon;

TextView text = (TextView) v.findViewById(R.id.myText);
text.setText(name);

ImageView imageicon = (ImageView) v.findViewById(R.id.myImg);
imageicon.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//Do some stuff
}
});
Drawable drawicon = getResources().getDrawable(icon);
imageicon.setBackgroundDrawable(drawicon);

table.addView(row);
}

关于android - 如何在 Android 中创建具有动态行数的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17918464/

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