Я хочу использовать в своем проекте Компоненты архитектуры Android (AAC) .Приятно.
Вот моя активность:
import androidx.appcompat.app.AppCompatActivity;
public class TradersActivity extends AppCompatActivity {
private TradersViewModel tradersViewModel;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
tradersViewModel = ViewModelProviders.of(this).get(TradersViewModel.class);
tradersViewModel.getIsEnableSwipeProgress().observe(this, new Observer<Boolean>() {
@Override
public void onChanged(Boolean isEnable) {
// do some work with UI
}
});
}
// button click
public void onClickViewJson(Trader trader) {
tradersViewModel.doClickJsonView(trader);
}
}
Вот моя ViewModel
public class TradersViewModel extends ViewModel {
private MutableLiveData<Boolean> isEnableSwipeProgress = new MutableLiveData<>();
public void doClickJsonView(Trader trader) {
// DO_SOME_COMPLEX_BUSINESS_LOGIC
}
public MutableLiveData<Boolean> getIsEnableSwipeProgress() {
return isEnableSwipeProgress;
}
}
На экране у меня есть кнопка.И когда я нажимаю эту кнопку, я вызываю метод действия - onClickViewJson(Trader trader)
.
Этот вызов метода tradersViewModel.doClickJsonView(trader);
В viewModel
этот метод выполняет сложную бизнес-логику.После того, как метод завершит свою работу, мне нужно вернуть результат ( json ) в мою деятельность.
Как я могу это сделать?