在Android項目中使用EditText進行數據綁定通常使用Data Binding Library。以下是一個簡單的示例:
android {
...
dataBinding {
enabled = true
}
}
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="viewModel"
type="com.example.MyViewModel" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@={viewModel.inputText}" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@{viewModel.outputText}" />
</LinearLayout>
</layout>
public class MyViewModel extends BaseObservable {
private String inputText;
private String outputText;
@Bindable
public String getInputText() {
return inputText;
}
public void setInputText(String inputText) {
this.inputText = inputText;
notifyPropertyChanged(BR.inputText);
}
@Bindable
public String getOutputText() {
return outputText;
}
public void setOutputText(String outputText) {
this.outputText = outputText;
notifyPropertyChanged(BR.outputText);
}
}
public class MainActivity extends AppCompatActivity {
private MyViewModel viewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
viewModel = new MyViewModel();
binding.setViewModel(viewModel);
binding.executePendingBindings();
}
}
現在,當用戶在EditText中輸入文本時,ViewModel中的inputText屬性會自動更新,同時TextView中的outputText屬性也會自動更新。這樣就實現了在Android項目中使用EditText進行數據綁定。