Android数据绑定 - 我可以访问布局XML中的封闭活动吗?

Avi*_*Avi 5 xml data-binding android android-activity

我想在XML中定义一个完成封闭活动的事件监听器,如下所示:

<EditText
    android:id="@+id/finish"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:imeOptions="actionDone"
    android:inputType="text"
    android:onEditorAction="@{() -> activity.finish()}" />
Run Code Online (Sandbox Code Playgroud)

但是,我没有提到封闭活动.我知道我可以使用a传递它<variable>,但Activity似乎是一个太常见的变量,无法在每个布局中显式传递...我认为数据绑定是为了简化代码而引入的.我没有在ViewDataBinding类中找到任何提示.

Geo*_*unt 2

您可以访问上下文,但它不会自动转换为活动。如果通货膨胀上下文是一个 Activity,您可以将其作为变量自动检索,这是有道理的。您可以在 android.com 上添加功能请求。

同时,我知道它有点长,但只要通货膨胀上下文是一个 Activity,您就可以这样做:

<EditText
    android:id="@+id/finish"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:imeOptions="actionDone"
    android:inputType="text"
    android:onEditorAction="@{() -> ((Activity)context).finish()}" />
Run Code Online (Sandbox Code Playgroud)

  • 将 Activity/fragment 传递给布局是个好习惯吗? (7认同)