Ich spiele mit der Zwei-Wege-Bindung der Datenbindung API, die in Android Studio 2.1 AFIK eingeführt wurde.Zwei-Wege-Bindung kann einen Setter für java.lang.String -Eigenschaft
ich diesen interessanten Fehler:
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> java.lang.RuntimeException: Found data binding errors.
****/ data binding error ****msg:The expression address.street cannot cannot be inverted: Two-way binding cannot resolve a setter for java.lang.String property 'street'
file:/path/to/layout.xml
loc:34:37 - 34:50 ****\ data binding error ****
Wenn ich versuche, diesen Fehler zu google finde ich nur 4 Tage alten japanische Twitter Posting von einem Mann, der über sie weint ...
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/edit_hint_zip"
android:text="@={address.zip}"
tools:text="12345"/>
Das address.zip
ist ein String
. Ich vermute, dass das Problem hier CharSequence
vs String
als Rückgabewert von EditText.getText()
ist.
Meine Idee war, zu definieren, es aber nicht für mich arbeiten:
@NonNull
@InverseBindingAdapter(attribute = "text")
public static String getText(EditText edit) {
return edit.getText().toString();
}
Was habe ich verpasst?
Kannst du das Commit, von dem du sprichst, verlinken? Ich sehe dort nur ein Commit, das vor 8 Wochen gepusht wurde, was nicht zusammenhängt. – rekire
Meinst du das commit [0137f2] (https://android.googlesource.com/platform/frameworks/data-binding/+/0137f239576702ac3ef4dd887b445d71f35169dd)? – rekire
Ja, und ich habe auch auf verschiedenen Versionen von Android Studio getestet. –