下面是一个使用MVVM架构和视图数据绑定来更新视图的示例代码:
首先,在项目的build.gradle文件中添加以下依赖项:
android {
...
dataBinding {
enabled = true
}
}
dependencies {
...
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
}
接下来,创建一个包含ViewModel的类:
public class MyViewModel extends ViewModel {
private MutableLiveData text = new MutableLiveData<>();
public LiveData getText() {
return text;
}
public void setText(String newText) {
text.setValue(newText);
}
}
然后,在布局文件中使用视图数据绑定:
最后,在活动中设置数据绑定和更新视图:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityMainBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
MyViewModel viewModel = ViewModelProviders.of(this).get(MyViewModel.class);
binding.setViewModel(viewModel);
binding.setLifecycleOwner(this);
}
}
这样,当EditText的内容发生变化时,TextView的文本也会相应地更新。