diff options
3 files changed, 19 insertions, 1 deletions
diff --git a/compiler/src/main/kotlin/android/databinding/tool/writer/LayoutBinderWriter.kt b/compiler/src/main/kotlin/android/databinding/tool/writer/LayoutBinderWriter.kt index f3bb53c8..6fd79cfa 100644 --- a/compiler/src/main/kotlin/android/databinding/tool/writer/LayoutBinderWriter.kt +++ b/compiler/src/main/kotlin/android/databinding/tool/writer/LayoutBinderWriter.kt @@ -109,7 +109,11 @@ val BindingTarget.fieldName : String by Delegates.lazy { target : BindingTarget } val BindingTarget.androidId by Delegates.lazy { target : BindingTarget -> - "R.id.${target.getId().androidId()}" + if (target.getId().startsWith("@android:id/")) { + "android.R.id.${target.getId().androidId()}" + } else { + "R.id.${target.getId().androidId()}" + } } val BindingTarget.interfaceType by Delegates.lazy { target : BindingTarget -> diff --git a/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/BasicBindingTest.java b/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/BasicBindingTest.java index d7bd2819..cfae4cc6 100644 --- a/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/BasicBindingTest.java +++ b/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/BasicBindingTest.java @@ -22,6 +22,7 @@ import android.databinding.testapp.databinding.JustIdBinding; import android.test.UiThreadTest; import android.view.View; import android.view.ViewGroup; +import android.widget.TextView; public class BasicBindingTest extends BaseDataBinderTest<BasicBindingBinding> { public BasicBindingTest() { @@ -152,6 +153,14 @@ public class BasicBindingTest extends BaseDataBinderTest<BasicBindingBinding> { assertNotSame(binding.textView, mBinder.textView); } + @UiThreadTest + public void testAndroidId() throws Throwable { + JustIdBinding binding = JustIdBinding.inflate(getActivity().getLayoutInflater()); + assertNotNull(binding); + assertNotNull(binding.empty); + assertTrue(binding.empty instanceof TextView); + } + private void assertAB(String a, String b) { mBinder.setA(a); mBinder.setB(b); diff --git a/integration-tests/TestApp/app/src/main/res/layout/just_id.xml b/integration-tests/TestApp/app/src/main/res/layout/just_id.xml index 211761ad..47860f91 100644 --- a/integration-tests/TestApp/app/src/main/res/layout/just_id.xml +++ b/integration-tests/TestApp/app/src/main/res/layout/just_id.xml @@ -22,5 +22,10 @@ android:text="Hello World" android:layout_width="wrap_content" android:layout_height="wrap_content"/> + <TextView + android:id="@android:id/empty" + android:text="Hello World" + android:layout_width="wrap_content" + android:layout_height="wrap_content"/> </LinearLayout> </layout>
\ No newline at end of file |