回答編集履歴

1

追記

2019/08/22 03:40

投稿

s.m_1
s.m_1

スコア293

test CHANGED
@@ -2,7 +2,15 @@
2
2
 
3
3
 
4
4
 
5
- また、```Fragment``` から ```context``` を参照する場合は、```onAttach(context: Context)``` で取得できた ```context``` を変数に割り当てて参照しても良いかと思います。
5
+ また、```Fragment``` から ```context``` を参照する場合は、```onAttach(context: Context)``` で取得できた ```context``` を変数に割り当てて参照しても良いかと思います。
6
+
7
+
8
+
9
+ ( kakajika さんのご指摘を受け追記 ) ```Fragment``` クラスでは、 ```getContext```、```requireContext()``` メソッドがあるので、それらで ```context``` を取得することも可能です。
10
+
11
+ また、```onAttach()``` で ```context``` を取得した際は、メモリリークを回避するために、 ```onDetach()``` で解放する必要があります。
12
+
13
+
6
14
 
7
15
 
8
16
 
@@ -12,7 +20,7 @@
12
20
 
13
21
 
14
22
 
15
- lateinit var mContext: Context
23
+ var mContext: Context? = null
16
24
 
17
25
 
18
26
 
@@ -36,6 +44,16 @@
36
44
 
37
45
 
38
46
 
47
+ override fun onDetach() {
48
+
49
+ context = null
50
+
51
+ super.onDetach()
52
+
53
+ }
54
+
55
+
56
+
39
57
  }
40
58
 
41
59
  ```