3
私はこのように、外側の活動を終了し、XMLでイベントリスナーを定義したいと思います:Androidデータバインディング - レイアウト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()}" />
しかし、私が囲んでいる活動への参照を持っていません。私は<variable>
を使って渡すことができますが、Activity
はあまりにも一般的な変数で、すべてのレイアウトで明示的に渡されるようです...私はコードを単純化するためにデータバインディングが導入されたと思いました。 ViewDataBindingクラスでヒントが見つかりませんでした。
私はちょうどそれをしようとしましたが、括弧が誤解されています(アクティビティ)(getRoot()。getContext())。finish();パーサーによって変換されます。 "error:not a statement"でコンパイルに失敗します。 – Avi
実際には、この種のキャストは他の変数に対しても機能します。組み込みの「コンテキスト」のみがこの問題を引き起こします。 – Avi