Android:绑定复合视图的属性

时间:2019-04-29 10:00:40

标签: java c# android xamarin.android android-databinding

(P.S。我是Android开发的新手,所以,我可以使用一些愚蠢的术语)。

因此,有一个空白的Xamarin.Android(C#)项目。我确信在这种情况下,任何Java开发人员都可以为我提供帮助。

无论如何,所以我有一个xml文件,其中有一个LinearLayout ViewGroup,并且它有一个嵌套的TextView。看起来像这样(顺便说一下,xml文件名为custom_View.xml

<LinearLayout....
       .....
       .....>
   <TextView 
       android:id="@+id/TextView1"
      ...../>
</LinearLayout>

我为此自定义视图创建的背景类继承了(或用Java的话称extendsLinearLayout类。在其构造函数内部,我调用了一个方法,该方法会扩展xml文件中的视图。

它是这样的:

public TestView(Context context) : base(context)
{
    Initialize(context);
}
private void Initialize(Context ctx)
{
    //Inflating the layout
    mContext = ctx;
    var inflatorService = (LayoutInflater)ctx.GetSystemService(Context.LayoutInflaterService);
    View v = inflatorService.Inflate(Resource.Layout.custom_View, this, false);
    this.AddView(v);

    TextView tv = v.FindViewById<TextView>(Resource.Id.TextView1);
}

现在请注意,我正在尝试从代码隐藏的xml文件中引用TextView

我的基本问题是,我在哪里绑定它的属性?例如,如果我想绑定Text的{​​{1}}属性,应该将代码放入哪个方法? (我知道如何绑定属性,但由于它们无关紧要,因此不将代码发布在此处。)

我已经看过SO上的其他文章,但是我似乎找不到我应该重写并绑定那里属性的方法?我试图在TextView方法中绑定属性,但是它抛出一个错误,这基本上意味着我在创建视图之前试图绑定该属性?

那么,我应该重写哪种方法? Initialize / OnViewCreated类中是否有与LinearLayout等效的方法?

编辑

Please read my binding code in this question

0 个答案:

没有答案