我想创建多个相同类型的视图。我创建了一个视图。
LinearLayout mainRoot = (LinearLayout) findViewById(R.id.wrapper);
这是父布局。我想在主根目录下创建多个视图。我可以使用add方法添加自定义视图。但是我应该如何处理资源ID。
我不知道如何访问单个项目,因为它们都具有相同的ID。
感谢。
答案 0 :(得分:1)
您可以使用setTag()方法为您创建的视图设置一些标记。
然后,当您想要访问这些视图时,可以使用findViewWithTag()来获取您要查找的视图。
更新:
LinearLayout mainRoot = (LinearLayout) findViewById(R.id.wrapper);
for (int i = 0; i < numCustomViews; i++) {
View customView = new View(this);
customView.setTag(i);
mainRoot.addView(customView);
}
// Find view with tag 4
View view5 = mainRoot.findViewWithTag(4);
Log.d("XXX", view5.toString());
答案 1 :(得分:1)
您可以做的是使用 setId
为每个视图设置IDButton btn=new Button(this);
btn.setId(1);
Button btn1=new Button(this);
btn.setId(2);
your_linear_Layout.add(btn);
your_linear_Layout.add(btn1);
现在在你的onClick方法
@Override
public void onClick(View v) {
switch(v.getId()){
case 1:
//btn clicked
break;
case 2:
// btn1 clicked.
break;
}
}
答案 2 :(得分:1)
使用RecyclerView而不是自定义视图。 1.您可以在RecyclerView中添加和删除。 2.你将获得ClickEvent。 3. Recycler View可根据您的要求垂直或水平。