安卓中ViewModelProvider的作用,请用java写三个相关例子
时间: 2023-03-31 09:04:24 浏览: 70
ViewModelProvider 的作用是为 Activity 或 Fragment 提供 ViewModel 实例,以便在配置更改时保留数据。以下是三个相关的例子:
1. 在 Activity 中使用 ViewModelProvider 获取 ViewModel 实例:
```
public class MyActivity extends AppCompatActivity {
private MyViewModel mViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
ViewModelProvider provider = new ViewModelProvider(this);
mViewModel = provider.get(MyViewModel.class);
}
}
```
2. 在 Fragment 中使用 ViewModelProvider 获取 ViewModel 实例:
```
public class MyFragment extends Fragment {
private MyViewModel mViewModel;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_my, container, false);
ViewModelProvider provider = new ViewModelProvider(this);
mViewModel = provider.get(MyViewModel.class);
return view;
}
}
```
3. 在 ViewModel 中使用 ViewModelProvider 获取其他 ViewModel 实例:
```
public class MyViewModel extends ViewModel {
private OtherViewModel mOtherViewModel;
public MyViewModel() {
ViewModelProvider provider = new ViewModelProvider(ViewModelStoreOwner);
mOtherViewModel = provider.get(OtherViewModel.class);
}
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)