【发布时间】:2019-01-13 19:10:09
【问题描述】:
我正在开始一项活动:
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)
我看到 App crashes when calling startActivityForResult 有同样的问题,但接受的答案建议删除一行 recipe.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);,我没有。
为什么我在startActivityForResult 上崩溃了,而startActivity 运行良好?
(我的最低 SDK 级别是 16,目标和编译 SDK 级别是 27,我正在运行 Android 8.1 模拟器)
【问题讨论】:
-
尝试一个四位数的
int值。 -
@Barns 认真的???有效。但为什么?您可以将其发布为答案吗?
-
不知道。我过去遇到过问题,当我将
intvalue 更改为更小的值(如四位数)时,它起作用了。我还没有检查我可以使用哪个最大int值。
标签: android android-activity start-activity startactivityforresult