Android:使用LayoutInflater添加视图

时间:2012-06-11 18:58:27

标签: android mono xamarin.android layout-inflater

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

我使用:

成功地将控件添加到LinearLayout
    LayoutInflater _inflatorservice = (LayoutInflater)this.GetSystemService(Context.LayoutInflaterService);
    var viewContainer = _inflatorservice.Inflate(Resource.Layout.ReportItImageButton, myLinearLayout);

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

3 个答案:

答案 0 :(得分:3)

这是有效的,它会在项目类型为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)
    {
    }
}

答案 1 :(得分:1)

还有一个参数。 没有将您的虚增视图添加到myLinearLayout,但仍会返回其View对象。

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

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

答案 2 :(得分:1)

View v = myLinearLayout.findViewById(R.id.myViewId)

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