У меня есть действие, которое я начинаю:
Intent intent = new Intent(this, CreateItemDetailsActivity.class);
if(storeId != null) {
intent.putExtra(Identifiers.STORE_ID, storeId);
}
intent.putExtra(Identifiers.ITEM_NAME, name);
intent.putExtra(Identifiers.ITEM_DESCRIPTION, description);
startActivity(intent);
Это работает, но теперь мне нужно вернуть данные в исходное действие, поэтому я изменяю вызов startActivity
на:
startActivityForResult(intent, CREATE_ITEM_RESULT);
(CREATE_ITEM_RESULT
— это случайное целое число 63463657, которое я придумал)
Однако мое приложение вылетает без вызова ни одного метода onCreate
(я реализовал и поставил точку останова в обоих):
Uncaught exception in thread main: java.lang.IllegalStateException: Could not execute method for android:onClick
android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:389)
(код вызывается в обработчике нажатия кнопки, следовательно, onClick
)
Я видел сбой приложения при вызове startActivityForResult, который имеет ту же проблему, но принятый ответ предлагает удалить строку recipe.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
, которой у меня нет.
Почему у меня происходит сбой на startActivityForResult
, в то время как startActivity
работает отлично?
(Мой минимальный уровень SDK — 16, уровни целевого SDK и компиляции — 27, и я использую эмулятор Android 8.1)
int
. - person Barns   schedule 06.08.2018int
value на что-то меньшее (например, четыре цифры), это сработало. Я не проверял, какое максимальное значениеint
я могу использовать. - person Barns   schedule 06.08.2018