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

回答編集履歴

2

一時書きだった追記を更新

2017/08/01 03:03

投稿

Yosuke-Kawakami
Yosuke-Kawakami

スコア161

answer CHANGED
@@ -1,11 +1,18 @@
1
1
  onCreateView で処理するのはよくありません。
2
2
  onActivityCreated 以降で作業するべき。
3
3
 
4
+ ---
5
+ 追記
4
- ※ あとで詳しく追記します。
6
+ 詳しい説明は諦めまた。僕には高尚すぎます。詳しい方のご助力に期待してください。
5
7
 
6
- 後で説明1
7
- 適切な資料を探すのに手間取りそうなので、一旦もの凄く雑に説明しておきます。
8
-
9
8
  onCreateView() では View を返して画面を確定するのですが、その中で確定する前に findViewById を利用しても適切に処理することができません。
10
9
 
10
+ 以下の動作の差異を確認してください。
11
+
12
+ ```java
13
+ View v = inflater.inflate(R.layout.activity_fragment0, null);
14
+ TextView dy =(TextView) v.findViewById(R.id.mayday);
15
+
16
+ // これは null になります
11
- ライフサイクル的は先ずは onCreateView() で確定させてから、onActivityCreated() なり onStart() なり適切な場所で findViewById を利用するべきです。
17
+ // TextView dy =(TextView) getActivity().findViewById(R.id.mayday);
18
+ ```

1

「あとで追記」を仮書き

2017/08/01 03:02

投稿

Yosuke-Kawakami
Yosuke-Kawakami

スコア161

answer CHANGED
@@ -1,4 +1,11 @@
1
1
  onCreateView で処理するのはよくありません。
2
2
  onActivityCreated 以降で作業するべき。
3
3
 
4
- ※ あとで詳しく追記します。
4
+ ※ あとで詳しく追記します。
5
+
6
+ 後で説明1
7
+ 適切な資料を探すのに手間取りそうなので、一旦もの凄く雑に説明しておきます。
8
+
9
+ onCreateView() では View を返して画面を確定するのですが、その中で確定する前に findViewById を利用しても適切に処理することができません。
10
+
11
+ ライフサイクル的は先ずは onCreateView() で確定させてから、onActivityCreated() なり onStart() なり適切な場所で findViewById を利用するべきです。