在Android中,ViewMode的使用基本步骤如下:
1,自定义 ViewModel 继承 ViewModel,在自定义 ViewModel 中编写获取UI数据的逻辑,配合使用 LiveData实现数据驱动。
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
public class MyViewModel extends ViewModel {
// 声明一个MutableLiveData来存储数据
private MutableLiveData myData = new MutableLiveData<>();
// 提供一个方法来更新数据
public void updateData(String newData) {
myData.setValue(newData);
}
// 提供一个方法来获取LiveData对象,供Activity或Fragment观察
public LiveData getMyData() {
return myData;
}
}
2,在 Activity / Fragment中 获取 ViewModel 实例,监听或收集 ViewModel 中的 LiveData数据,进行对应的UI更新。
public class MyActivity extends AppCompatActivity {
private MyViewModel myViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
// 获取ViewModel的实例
myViewModel = new ViewModelProvider(this).get(MyViewModel.class);
// 获取UI组件
TextView textView = findViewById(R.id.textView);
// 观察LiveData中的数据变化
myViewModel.getMyData().observe(this, new Observer<String>() {
@Override
public void onChanged(String s) {
// 更新UI
textView.setText(s);
}
});
// 模拟数据更新
myViewModel.updateData("Hello from ViewModel!");
}
}
3,定义布局文件使之包含一个TextView,用于显示从ViewModel中获取的数据。
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Data will appear here" />