teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正・追加

2023/07/20 06:57

投稿

jimbe
jimbe

スコア13352

answer CHANGED
@@ -1,5 +1,7 @@
1
1
  簡単なサンプルで実験してみます。二つのアクティビティ(MainActivity/SubActivity)それぞれにフラグメント(MainFragment/SubFramgnet)を載せ、ボタンでアクティビティを行き来します。
2
2
 
3
+ ![イメージ画像](https://ddjkaamml8q8x.cloudfront.net/questions/2023-07-20/5ca998c0-ba95-4984-9769-f2e47ba73e21.png)
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

コードフォーマット修正

2023/07/19 18:02

投稿

jimbe
jimbe

スコア13352

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
- startActivity(Intent(this, SubActivity::class.java))
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
- startActivity(Intent(this, MainActivity::class.java))
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
- //startActivity(Intent(this, SubActivity::class.java))
202
+ //startActivity(Intent(this, SubActivity::class.java))
206
- fm.beginTransaction().replace(R.id.fragment_container_view, SubFragment()).commit();
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
- //startActivity(Intent(this, MainActivity::class.java))
206
+ //startActivity(Intent(this, MainActivity::class.java))
211
- fm.beginTransaction().replace(R.id.fragment_container_view, MainFragment()).commit();
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();