新しいAndroidデータバインディングを使用しています。 EditText、TextView、ラジオ、チェックボックスを使用してデータバインディングを実行することができます。今、私はスピナーでデータ結合を行うことができません。 Android spinner data binding with xml layoutAndroidスピナーXMLを使用したデータバインディングと選択した値の表示
しかし、まだ解決策を見つけることができません:
はリンクの下にあるいくつかの手がかりを見つけました。また、双方向データバインディングを実行する必要があります。スピナーデータの選択値を反映する必要があります。
例を教えてもらえますか?
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/tools"
xmlns:card_view="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View" />
<variable
name="viewModel"
type="com.ViewModels.model" />
</data>
<Spinner
android:id="@+id/assessmemt_spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_margin="@dimen/carview_margin"
android:layout_toRightOf="@+id/text_bp"
android:drawSelectorOnTop="true"
android:spinnerMode="dropdown"
android:visibility="@{viewModel.type.equals(@string/spinner_type)? View.VISIBLE : View.GONE}" />
</layout>
ビューモデル::ここで
は私xml
コードです
public class AssessmentGetViewModel {
private String valueWidth;
private ArrayList<String> values;
private String type;
public String getValueWidth() { return this.valueWidth; }
public void setValueWidth(String valueWidth) { this.valueWidth = valueWidth; }
public ArrayList<String> getvalues() { return this.values; }
public void setvalues(ArrayList<String> values) { this.values = values; }
public String gettype() { return this.type; }
public void settype(String type) { this.type = type; }
}
は、 、newTextAttrChangedは、たとえあなたが –
ではないと言っていてもnullです^^おそらく、あなたのxmlの "@"の後ろに "="がありません。 'bind:selectedValue =" @ = {viewModel.text} "のようになります。 –