gpt4 book ai didi

java - 安卓: "SetId in a For Loop using the index value"

转载 作者:行者123 更新时间:2023-12-02 02:38:21 27 4
gpt4 key购买 nike

我试图在 For 循环中创建一堆 ImageView。我想将 View 设置为彼此下方。为此,我考虑将 View 的 id 设置为 for 循环的 i 值,然后将下面的 LayoutParam 设置为 i-1 的 id。

for (int i = 0; i < a.length(); i++)
{
ImageView img = new ImageView(this);
img.setImageResource(R.drawable.board);
img.setId(i);
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) img.getLayoutParams();
lp.addRule(RelativeLayout.BELOW, i-1);
img.setLayoutParams(lp);
}

当 i 不为 0 时,这会出现问题。然后,我收到警告“预期类型 id 的资源”,我读过无数地方,可以通过 View.generateViewId() 轻松解决该警告,但是这会生成一个随机 id,因此我无法在下一个循环中到达前一个 id。

如何解决这个问题呢?

最佳答案

however this generates a random id therefore i can't reach the previous id on the next loop.

将 id 值或整个 ImageView 对象存储在 Arraylist 中。

然后您可以查找以前的 id 或仅使用生成方法(如其含义所示),并在 View 本身上使用 getId 方法。

或者忘记这一切,使用垂直的 LinearLayout

关于java - 安卓: "SetId in a For Loop using the index value",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45892988/

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