2

Java 或 C# 答案很好(我们使用 MonoDroid)

我成功地向 LinearLayout 添加了一个控件:

    LayoutInflater _inflatorservice = (LayoutInflater)this.GetSystemService(Context.LayoutInflaterService);
    var viewContainer = _inflatorservice.Inflate(Resource.Layout.ReportItImageButton, myLinearLayout);

然后如何获得对刚刚添加的视图的引用?我以这种方式添加了许多相同的控件,因此需要将第 n 个项目添加到布局中。

4

3 回答 3

3

这有效,假设项目是 type ,它会获取添加的最新项目Button

LayoutInflater _inflatorservice = (LayoutInflater)this.GetSystemService(
    Context.LayoutInflaterService);
var layout = _inflatorservice.Inflate(
    Resource.Layout.ReportItImageButton, layoutImages) as LinearLayout;

if (layout != null)
{
    var b = layout.GetChildAt(layout.ChildCount - 1) as Button;
    if (b != null)
    {
    }
}
于 2012-06-11T19:50:25.670 回答
1

还有一个附加参数。它不会将您的膨胀视图添加到myLinearLayout,但仍会返回View它的对象。

var viewObj = _inflatorservice.Inflate(
    Resource.Layout.ReportItImageButton, myLinearLayout, false);

请注意,例如,如果您添加了一个,LinearLayout那么您将得到一个LinearLayout返回。此方法返回 XML 布局的视图,因此它可以是任何类型的View.

于 2012-06-11T19:14:29.167 回答
1
View v = myLinearLayout.findViewById(R.id.myViewId)

myViewId 应该与 ReportItImageButton.xml 文件中指定的 id 相同

于 2012-06-11T19:39:08.227 回答