쉬운 완전한 예
id
포함 된 레이아웃으로 설정 하고 binding.includedLayout.anyView
.
이 예제 <include
는 코드에 포함 된 뷰에 값을 전달하고 액세스 하는 데 도움이됩니다 .
1 단계
이 있습니다 . 포함 된 레이아웃 layout_common.xml
으로 전달 String
하려고합니다.
String
레이아웃에 변수를 생성 String
하고 TextView
.
<data>
// declare fields
<variable
name="passedText"
type="String"/>
</data>
<TextView
android:id="@+id/textView"
...
android:text="@{passedText}"/> //set field to your view.
2 단계
이 레이아웃을 상위 레이아웃에 포함합니다. id
포함 된 레이아웃에 제공하여 바인딩 클래스에서 사용할 수 있도록합니다. 이제 태그에 String passedText
을 전달할 수 있습니다 <include
.
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
..
>
<include
android:id="@+id/includedLayout"
layout="@layout/layout_common"
app:passedText="@{@string/app_name}" // here we pass any String
/>
</LinearLayout>
</layout>
- 이제
binding.includedLayout.textView
수업에서 사용할 수 있습니다 .
위와 같이 포함 된 레이아웃에 모든 변수를 전달할 수 있습니다.
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
binding.includedLayout.textView.setText("text");
참고 두 레이아웃 (상위 및 포함)은 모두 binding layout
,<layout
<include layout="@layout/buttons" android:id="@+id/buttons"/>
.. 단추보기에 액세스 할 수 있도록 공용 필드를 생성하려면 여전히 ID가 필요합니다.