我正在构建一个应用程序,其中第一个 Activity 通过startActivityByResult
. 完成一些设置后,我需要将设置结果发回。
所以我重写了第二个 Activity 的onPause()
方法,我得到了意图,putExra
然后通过setResult()
.
回到第一个活动。onActivityResult
肯定被调用了。我之前设置了 resultCode,但意图数据为空。我不知道出了什么问题。
这是我的代码:
第一个活动
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.e("page1", requestCode + "_");
Log.e("page1", resultCode + "_");
Log.e("page1", (data == null) + "_");
// if ((requestCode == 1) && (data != null)) {
if (data != null) {
String size = data.getStringExtra("size");
Log.e("switch", size + "_");
switch (size.charAt(0)) {
case '1': {
text.setTextSize(10);
}
break;
case '2': {
text.setTextSize(20);
}
break;
case '3': {
text.setTextSize(30);
}
break;
}
}
}
我的第二个活动
@Override
protected void onPause() {
Intent intent = getIntent();
Log.e("prefs", (intent == null) + "_");
intent.putExtra("size", size);
setResult(3, intent);
super.onPause();
}
我已经在 LogCat 中进行了测试。在第二个活动中。即将发送的意图绝对不为空。但是当它进入第一个活动时。Null 刚刚返回。这让我真的发疯了。