Android:“使用索引值在For循环中设置”

时间:2017-08-26 07:24:58

标签: java android identifier

我试图在For循环中创建一堆ImageViews。我想将视图设置在彼此之下。为此我想到将视图的id设置为for循环的i值,然后将LayoutParam BELOW设置为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);
    }

这提供了一个问题,当我不是0.然后我得到警告“类型id的预期资源”,我读了无数的地方很容易通过View.generateViewId()解决但是这会生成一个随机ID,因此我可以' t在下一个循环中达到先前的id。

怎么会这样呢?

1 个答案:

答案 0 :(得分:2)

  

然而,这会生成一个随机ID,因此我无法在下一个循环中达到之前的ID。

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

然后你要么可以查找以前的id,要么只使用它的意图使用generate方法,并在视图本身上使用getId方法。

或者忘了这一切,并使用垂直LinearLayout