回答編集履歴
2
修正・追加
answer
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
簡単なサンプルで実験してみます。二つのアクティビティ(MainActivity/SubActivity)それぞれにフラグメント(MainFragment/SubFramgnet)を載せ、ボタンでアクティビティを行き来します。
|
2
2
|
|
3
|
+

|
4
|
+
|
3
5
|
MainActivity.kt
|
4
6
|
```kotlin
|
5
7
|
import android.content.Intent
|
@@ -88,7 +90,7 @@
|
|
88
90
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
89
91
|
```
|
90
92
|
|
91
|
-
※ サブはメインの "sub" と "main" を入れ替えた
|
93
|
+
※ 以下のサブ関係はメインの "sub" と "main" を入れ替えた感じです。
|
92
94
|
|
93
95
|
SubActivity.kt
|
94
96
|
```kotlin
|
@@ -210,4 +212,11 @@
|
|
210
212
|
fm.beginTransaction().replace(R.id.fragment_container_view, MainFragment()).commit();
|
211
213
|
}
|
212
214
|
}
|
215
|
+
```
|
216
|
+
---
|
217
|
+
もし「やっぱり終わった時の状態で再開させたい」となりましたら、 24 行目を savedInstanceState == null の時だけ実行するようにすれば、マルチアクティビティに戻す必要はありません。
|
218
|
+
```kotlin
|
219
|
+
if(savedInstanceState == null) {
|
220
|
+
fm.beginTransaction().replace(R.id.fragment_container_view, MainFragment()).commit();
|
221
|
+
}
|
213
222
|
```
|
1
コードフォーマット修正
answer
CHANGED
@@ -16,9 +16,8 @@
|
|
16
16
|
|
17
17
|
val fm = supportFragmentManager
|
18
18
|
|
19
|
-
fm.setFragmentResultListener("toSub", this) {
|
19
|
+
fm.setFragmentResultListener("toSub", this) { requestKey, result ->
|
20
|
-
requestKey, result ->
|
21
|
-
|
20
|
+
startActivity(Intent(this, SubActivity::class.java))
|
22
21
|
}
|
23
22
|
|
24
23
|
fm.beginTransaction().replace(R.id.fragment_container_view, MainFragment()).commit();
|
@@ -107,9 +106,8 @@
|
|
107
106
|
|
108
107
|
val fm = supportFragmentManager
|
109
108
|
|
110
|
-
fm.setFragmentResultListener("toMain", this) {
|
109
|
+
fm.setFragmentResultListener("toMain", this) { requestKey, result ->
|
111
|
-
requestKey, result ->
|
112
|
-
|
110
|
+
startActivity(Intent(this, MainActivity::class.java))
|
113
111
|
}
|
114
112
|
|
115
113
|
fm.beginTransaction().replace(R.id.fragment_container_view, SubFragment()).commit();
|
@@ -200,15 +198,13 @@
|
|
200
198
|
|
201
199
|
val fm = supportFragmentManager
|
202
200
|
|
203
|
-
fm.setFragmentResultListener("toSub", this) {
|
201
|
+
fm.setFragmentResultListener("toSub", this) { requestKey, result ->
|
204
|
-
requestKey, result ->
|
205
|
-
|
202
|
+
//startActivity(Intent(this, SubActivity::class.java))
|
206
|
-
|
203
|
+
fm.beginTransaction().replace(R.id.fragment_container_view, SubFragment()).commit();
|
207
204
|
}
|
208
|
-
fm.setFragmentResultListener("toMain", this) { //SubActivity から持ってきた
|
205
|
+
fm.setFragmentResultListener("toMain", this) { requestKey, result -> //SubActivity から持ってきた
|
209
|
-
requestKey, result ->
|
210
|
-
|
206
|
+
//startActivity(Intent(this, MainActivity::class.java))
|
211
|
-
|
207
|
+
fm.beginTransaction().replace(R.id.fragment_container_view, MainFragment()).commit();
|
212
208
|
}
|
213
209
|
|
214
210
|
fm.beginTransaction().replace(R.id.fragment_container_view, MainFragment()).commit();
|