LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v[i]=inflater.inflate(R.layout.row, null);
mainView.add(v[i]);
为动态添加的视图设置 id 是否正确?或者有什么更好的选择吗?
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v[i]=inflater.inflate(R.layout.row, null);
mainView.add(v[i]);
为动态添加的视图设置 id 是否正确?或者有什么更好的选择吗?
尝试这个:
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 文件的根。
因此,如果您将 null 传递给 inflate 方法的根参数,则 inflate 返回膨胀布局,因此您可以设置 id 或 tag 或将其存储在局部变量中。
创建按钮列表,您可以像这样创建按钮并设置它们的 id、标签和 onclicklisteners 并将它们添加到按钮列表中:
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 或标签进行调用。