如何使用新的dataBinder插件進行雙向綁定(從UI到數據以及從數據到UI)?Android - 如何使用com.android.databinding:dataBinder進行雙向綁定?
非常感謝!
如何使用新的dataBinder插件進行雙向綁定(從UI到數據以及從數據到UI)?Android - 如何使用com.android.databinding:dataBinder進行雙向綁定?
非常感謝!
我們還沒有這個,也許在v1之後。不確定你的用例是什麼,但是我們已經爲每個視圖創建了一個ID字段,所以當你需要這些數據時,你可以使用該視圖來獲取它。
例如如果您有<EditText android:id="@+id/mytext"/>
生成的綁定類將有public final EditText mytext;
。
下面是一個簡單的例子:
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable name="bind" type="com.example.app.MainActivity.Bind"/>
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onTextChanged="@{bind.textChanged}"
android:text="@{bind.text}"/>
</LinearLayout>
</layout>
和活動代碼(使用retrolambda):
public class MainActivity extends AppCompatActivity {
private final Bind bind = new Bind();
public class Bind {
public ObservableField<String> text = new ObservableField<>();
public TextViewBindingAdapter.OnTextChanged textChanged = (s, start, before, count) -> {
System.out.println("New value: " + s);
};
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
binding.setBind(bind);
}
}
我知道了!謝謝 – araraujo
在rc1中,您可以擁有視圖中任何事件的事件處理程序。例如,'android:onTextChanged =「@ {myObj.textChanged}」'。我知道這不是雙向數據綁定,但它確實讓生活變得更輕鬆。 –
對於各種組件,雙向數據綁定同時可用。有關詳細信息,請參見http://stackoverflow.com/documentation/android/111/data-binding-library/6634/built-in-twoway-data-binding#t=201704111334151449175 – aha