質問: Android Studioで単語帳アプリを作っています。 Fragment上に子Fragmentを生成し、親FragmentをViewPagerでスワイプさせる方式を用いる予定です。 そこで子Fragmentに直接単語を載せようと思うのですが、基礎的な部分でつまづいてしまっています。 テキスト表示の部分のコード自体がわかりません。子Fragmentのコードは以下です。 調べてはいますが、FragmentのライフサイクルもonActivityCreatedでいいのかも分からないし、ボタンを押したりしてテキストを表示させるわけではないのでonClickというわけにもいきません。 ライフサイクルのところとFragmentが画面上に形成されたときにテキストが出ている状態にしておくにはどうすればいいでしょうか。 ``` @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_child1, null); } public void onActivityCreated(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ???/*← ここでつまづいています */ } } ```
回答: onCreateViewでレイアウトファイルを読み込んだViewを返しているのでレイアウトファイルにTextViewを配置していれば表示されるはずです。 レイアウトファイルを読み込んだ後に動的にTextViewの表示、非表示を切り替えたり、文字を変えたりしたいのなら下記みたいな感じで変更したいTextViewを取得してください。 変更するタイミングはonCreateViewの後にonViewCreatedやonActivityCreatedが呼ばれるのでどちらかを利用するのがいいみたいですが、理由は忘れましたが、確かonViewCreatedが推奨されていたような気がします。 ``` TextView text; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_child1, null); text = view.findViewId(R.id.text);//レイアウトファイルで設定したTextViewにId return view; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { text.setVisibility(View.VISIBLE); text.setText("aaaaaa"); } ```