引用通过XML实例化的控制器

时间:2017-08-26 17:23:18

标签: android cyborg

我已经创建了一个实用程序控制器并通过xml(CyborgView)对其进行了实例化。到目前为止一切顺利。
然而,当我想使用它时,我卡住了......如何从xml获得该控制器的引用?
请注意,我的目标是使用多个相同类型的控制器。

1 个答案:

答案 0 :(得分:1)

在Cyborg 0.8.11(即将推出)中,您可以使用ViewIdentifier注释来注入控制器,而不仅仅是视图。

在Cyborg 0.8.10及以下版本中: 您可以以非常类似的方式获取控制器以获取视图,您可以像给定一个视图一样为CyborgView提供ID,然后使用该ID获取控制器:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                  xmlns:cyborg="http://schemas.android.com/apk/res-auto"
                                  android:layout_width="match_parent"
                                  android:layout_height="match_parent"
                                  android:orientation="vertical">

                    <com.nu.art.cyborg.core.CyborgView
                            android:id="@+id/CV_MyController"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            cyborg:controller="com.me.myself.i.MyController"/>
</LinearLayout>

然后在控制器本身中,覆盖extractMembers()函数,并在其中获取控制器:

    private MyController myController;

    @Override
    protected void extractMembers() {
         myController = getControllerById(R.id.CV_MyController);
    }

要使用同一个控制器的多个实例,可以使用id属性区分它们。