-2
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v[i]=inflater.inflate(R.layout.row, null);
mainView.add(v[i]);

为动态添加的视图设置 id 是否正确?或者有什么更好的选择吗?

4

2 回答 2

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 文件的根。

因此,如果您将 null 传递给 inflate 方法的根参数,则 inflate 返回膨胀布局,因此您可以设置 id 或 tag 或将其存储在局部变量中。

于 2013-07-08T13:16:52.287 回答
1

创建按钮列表,您可以像这样创建按钮并设置它们的 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 或标签进行调用。

于 2013-07-08T13:22:16.923 回答