Android: StartActivityForResult всегда получает результат кода 0? [закрыто
-
20-09-2019 - |
Вопрос
По какой -то причине, когда я использую вызов, результат всегда возвращается как 0. Все, что я делаю, это всплывающее окно «Компания выбора», а затем, как только выбор сделан, пользователь попадает на кнопку Back. Кто -нибудь знает, какую ошибку я мог бы сделать?
Вызовая деятельность:
Intent i = new Intent(this, Selection.class);
Log.d("Front-End", "Launching Activity");
startActivityForResult(i, SELECTION);
Вызываемое действие:
bundle.putStringArray("selections", selected_array);
Intent resultIntent = new Intent();
resultIntent.putExtras(bundle);
setResult(RESULT_OK, resultIntent);
finish();
Какие-либо предложения? Если я включу звонок Finise (), он даст мне следующее:
W/ActivityManager( 1030): Duplicate finish request for HistoryRecord{44802c90 com.android.TVitter/.Selection}
Решение
ОК, сейчас не пламенись. Мне потребовалось два часа, чтобы отладить это :( просто записать его, чтобы другие не совершили эту глупую ошибку. Мне пришлось положить кнопку «ОК», а затем обрабатывать событие вместо того, чтобы позволить пользователю нажать кнопку «Назад» По телефону. Это была очевидная вещь, но по какой -то причине я пропустил это ...
Другие советы
Вы также можете реализовать Activity.onBackPressed()
Если вы хотите вернуть некоторые конкретные данные из деятельности, когда нажата кнопка Back. Похоже, что это доступно только с 2.0, хотя.