最初のアクティビティが別のアクティビティを開始するアプリケーションを構築していますstartActivityByResult
。設定が完了したら、設定結果を返送する必要があります。
そこで、2 番目のアクティビティのonPause()
メソッドをオーバーライドし、インテントを取得して、putExra
それを 経由で送り返しますsetResult()
。
最初のアクティビティに戻ります。onActivityResult
確実に呼ばれました。前に resultCode を設定しましたが、インテント データが null です。何が悪いのかわかりません。
これが私のコードです:
最初のアクティビティ
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;
}
}
}
私の 2 番目のアクティビティ
@Override
protected void onPause() {
Intent intent = getIntent();
Log.e("prefs", (intent == null) + "_");
intent.putExtra("size", size);
setResult(3, intent);
super.onPause();
}
LogCat でテストしました。2 番目のアクティビティで。送信しようとしているインテントは、決して null ではありません。しかし、最初のアクティビティに行くとき。Null が返されました。これは私を本当に夢中にさせています。