@terminator-light

Практично ли передавать объекты в качестве параметра другому контроллеру в Conductor?

Как понял, передавать можно, но могут ли случиться непредвиденные ситуации?

CheckoutController:
public void init(){
     btn.setOnClickListener(v->getRouter().pushController(RouterTransaction.with(address == null ?  new AddressController(this) : new AddressController(address, this)));
}
@Override
public void setAddress(Address address) {
     this.address = address;
     tvAddress.setText(address.street+" "+address.house);
}

AddressController:
public <T extends Controller & CheckoutListener> AddressController(Address address, T listener) {
        this(new BundleBuilder()
        .putString("street", address.street)
        .putString("house", address.house)
        .build());
        setTargetController(listener);
}

public AddressController(Bundle bundle){
        address.street = bundle.getString("street");
        address.house = bundle.getString("house");
}

public void init(){
        btnSave.setOnClickListener(v->{
            getRouter().popCurrentController();
            Address address = new Address();
            address.street =  etStreet.getText().toString();
            address.house =  etHouse.getText().toString();
            CheckoutListener listener = (CheckoutListener) getTargetController();

            if (listener != null) {
                listener.setAddress(address);
            }
        });
}


Или в SharedPreference лучше сохранять?
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Никакого смысла в том, что ты сделал, нет. Ничего не сохранится при пересоздании. Более того, оно упадёт, тк ты не сделал пустой конструктор.
Аргументы нужно передавать через бандл getArgs().
Сохранять в shared preferences тупо, тк это персистентное хранилище.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽