gpt4 book ai didi

java - for循环中的动态变量?

转载 作者:行者123 更新时间:2023-12-01 12:35:07 25 4
gpt4 key购买 nike

我有一个名为 Activity_main.xml 的布局,它是我的父布局,然后我在 for 循环中插入一个子布局 (activity_main_card.xml)。

我还有一个数组,我正在做的是使用数组的长度来确定它应该创建多少个子元素。我要在子元素中使用的所有数据都存储在数组中,因此想法是循环数组,为每个循环创建一个子元素并填充数据。

相反,当前正在生成 3 个(数组长度)子元素,但它仅使用数组中的最新内容填充第一个子元素。这是因为它保持变量相同。

我需要做的是以某种方式设置随着循环迭代而变化的动态变量。

我的方法的代码如下:

    for (int i = 0; i < cardArray.length; i++) {
LinearLayout item = (LinearLayout)findViewById(R.id.card_holder);
View child = getLayoutInflater().inflate(R.layout.activity_main_card, item, false);
item.addView(child);

//Set objects from array to variables
String cardTitle = cardArray[i][0];
String cardContent = cardArray[i][1];
String cardImage = cardArray[i][2];

//Set XML elements to variables
TextView title = (TextView) findViewById(R.id.card_title);
TextView content = (TextView) findViewById(R.id.card_content);
ImageView image = (ImageView) findViewById(R.id.card_image);

//Load variable content into card layout
title.setText(cardTitle);
content.setText(cardContent);
image.setImageDrawable(getResources().getDrawable(getResources().getIdentifier("drawable/" + cardImage, "drawable", getPackageName())));
}

我认为我可以做的是将 View 设置为:

TextView title[i] = (TextView) findViewById(R.id.card_title); 

但是这不起作用。有谁知道我怎样才能实现这个目标?

最佳答案

您需要获取对刚刚创建的当前View 的引用,然后填充该View 上的TextView 元素。这可以通过这样做来实现:

TextView title = (TextView) child.findViewById(R.id.card_title);
TextView content = (TextView) child.findViewById(R.id.card_content);
ImageView image = (ImageView) child.findViewById(R.id.card_image);

但是,您可能最好以不同的方式解决此问题,正如 Jonathan 建议的 ListView 和适配器可能更适合这种情况。

关于java - for循环中的动态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25654274/

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