架构组件和意图附加

时间:2018-09-30 10:29:33

标签: android mvvm android-architecture-components android-viewmodel android-mvvm

根据官方架构指南,将数据以//get cities check if cities of the data exist. If not fill the cities getCities(stateID:string) { let index=this.dataStates.findIndex(p=>p.stateID==stateID) if (index>=0){ //Always must be index>0 if (this.dataStates.cities.length<=0) //is not fill yet { this.httpClient.get(url+"/"+stateID).subscribe(res=>{ this.dataStates[index].cities=res; }) } } 的形式从一个intent extras传递到另一个{仍是合法的(通过activity转发或通过startActivity(ForResult)返回) )?

此外,可以用接收到的数据(例如,用setResult填充views并利用Android系统在配置更改时处理的自动恢复吗?

这些职责中的任何一项应转发给editText.setText(intent.getStringExtra...)以及如何转发?

1 个答案:

答案 0 :(得分:0)

是的。考虑使用您的数据的MutableLiveData。

private final MutableLiveData<Integer> selectedChannelPos = new MutableLiveData<>();

在ViewModel中进行操作。

private void setSelectedChannelPos(int value) {
    selectedChannelPos.setValue(value);
}

并在活动上订阅它。像这样:

mainViewModel.getSelectedChannelPos().observe(this, pos -> { //pos is position of RecyclerView          
        currentChannelName.setText(mainViewModel.getChannelName(pos));
    });