Передача обратно данных к Основному виду деятельности в Android

Если Dagger2 не может сгенерировать свои компоненты, это означает, что в вашем коде есть ошибки с областями действия / модулями. Проверьте наши методы @ Provides / Inject.

UPD:

Вы должны внедрить свои компоненты в случаи, когда вам нужны экземпляры классов, предоставляемые модулем.

как

inject(MainActivity main);
277
задан Adinia 31 October 2017 в 00:20
поделиться

2 ответа

Вызов дочерней активности Intent с помощью вызова метода startActivityForResult ()

Вот пример этого: http://developer.android.com/training/notepad/notepad-ex2.html

и в разделе «Возврат результата с экрана»: http://developer.android.com/guide/faq/commontasks.html#opennewscreen

15
ответ дан 23 November 2019 в 02:05
поделиться

Есть несколько способов достичь желаемого, в зависимости от обстоятельств.

Наиболее распространенный сценарий (как звучит у вас) - это когда дочернее действие используется для получения пользовательского ввода - например, выбора контакта из списка или ввода данных в диалоговом окне. В этом случае вы должны использовать startActivityForResult для запуска дочернего Activity.

Это обеспечивает конвейер для отправки данных обратно в основную Activity с использованием setResult . Метод setResult принимает значение результата типа int и намерение, которое передается обратно вызывающей активности.

Intent resultIntent = new Intent();
// TODO Add extras or a data URI to this intent as appropriate.
resultIntent.putExtra("some_key", "String data"); 
setResult(Activity.RESULT_OK, resultIntent);
finish();

Для доступа к возвращаемым данным в вызывающей операции переопределение onActivityResult . RequestCode соответствует целому числу, переданному в вызове startActivityForResult , в то время как resultCode и data Intent возвращаются из дочернего Activity.

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  switch(requestCode) {
    case (MY_CHILD_ACTIVITY) : {
      if (resultCode == Activity.RESULT_OK) {
        // TODO Extract the data returned from the child Activity.
        String returnValue = data.getStringExtra("some_key");
      }
      break;
    } 
  }
}
454
ответ дан 23 November 2019 в 02:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: