I am using the android data binding library in my new application. I'm currently trying to pass another view reference to a method.
I have an ImageButton with onClickListener . In this onClick listener, I want to pass the root view reference to the method.
<RelativLayout android:id="@+id/root_element" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentStart="true" android:contentDescription="@string/close_dialog" android:src="@drawable/ic_close_212121_24dp" android:background="@android:color/transparent" android:onClick="@{() -> Helper.doSth(root_element)}"/> </RelativLayout>
This source code above is just an example, not a complete one. There are more children, and the image button is not a direct child of the root element. But I think the meaning is clear.
I already tried to pass the link by specifying the identifier of the root view (see above). But that does not work. If I try to compile this, I get an error that the root_element type root_element not specified.
I also tried to import the generated binding class and access the root element with a public field in it. Also, this method does not work, since you must first create a binding class.
So, is there a way to pass a reference to a method? I know that I can pass the identifier of the root view using @id/root_element , but I do not want this, since I need to find a way to get a link to this view with only this identifier.
android data-binding android-view
Fabian
source share