Ich möchte ein einfaches Layout einfügen und eine statische Variable an sie übergeben (String-Ressource hier). I followedmultipleexamples ohne Glück.Variable an inkludiertes Layout über XML übergeben
main_layout.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">
<data></data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<include android:id="@+id/first_included" layout="@layout/included" app:theValue="@string/firstValue" />
<include android:id="@+id/first_included" layout="@layout/included" app:theValue="@string/secondValue" />
</LinearLayout>
</layout>
included.xml
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable name="theValue" type="String" />
</data>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{theValue}"/>
</layout>
Das gibt mir die Compiler-Fehler
Error: No resource identifier found for attribute 'theValue' in package 'com.just.example'
ich tun Datenbindung in dem Rest des Projekts und alles funktioniert fein. Ich könnte den Wert programmgesteuert setzen, aber dieser ist statisch, ich möchte es in der Layout-Datei setzen können.
Verwenden Sie einen Datenbindungsausdruck für 'app: theValue' (z. B.' app: theValue = "@ {@ string/firstValue}" '). – CommonsWare
Ich habe versucht, dies früher zu tun, aber gescheitert, das Problem ist, dass ich meine Ressourcen dot-getrennt haben, die einen Kompilierungsfehler mit Ihrem Vorschlag wirft .. Vielleicht dot-separated Ressourcen sind nicht so gut unterstützt. Danke, es funktionierte so ohne eine dot-getrennte Ressource. Doh .. – Odys
Bitte überprüfen Sie diesen Code: DataBindingUtil.setContentView (this, yourView); in deiner Aktivität. Ich denke du hast es verpasst. Vielen Dank! –