LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v[i]=inflater.inflate(R.layout.row, null);
mainView.add(v[i]);
是否可以为动态添加的视图设置ID?或者有更好的选择吗?
答案 0 :(得分:1)
试试这个:
v[i] = inflater.inflate(R.layout.row, null);
Button button = (Button) v[i].findViewById(R.id.button);
mainLinear.addView(v[i]);
如果你检查javaDoc的inflate
方法,你会看到:
返回:膨胀层次结构的根视图。如果root是 提供,这是根视图;否则它是根的 膨胀的XML文件。
因此,如果您为inflate方法传递null参数,则inflate返回膨胀布局,因此您可以设置id或tag或将其存储在局部变量中。
答案 1 :(得分:1)
创建一个按钮列表,您可以创建按钮并设置它们的ID,标签和onclicklistenners,并将它们添加到按钮列表中:
buttonList = new ArrayList<Button>();
for (int i=0;i<5;i++){
Button button = new Button(getApplicationContext());
button.setOnClickListener(mThisButtonListener);
button.setId(i);
button.setTag(i);
myLayout.addView(button);
buttonList.add(button);
}
当您需要再次使用该按钮时,只需使用列表中的ID或标签进行呼叫。