我试图在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。
怎么会这样呢?
答案 0 :(得分:2)
然而,这会生成一个随机ID,因此我无法在下一个循环中达到之前的ID。
将id值或整个ImageView对象存储在Arraylist中。
然后你要么可以查找以前的id,要么只使用它的意图使用generate方法,并在视图本身上使用getId方法。
或者忘了这一切,并使用垂直LinearLayout