新人成長記録4th

こんにちは、Android開発プログラマのpoppyです

前回の記事では、
ListViewにおける動的なViewの生成をご紹介いたしました

今回は、Fragmentについて記事にしていきたいと思います

ではでは、以下の内容でさっそくいきますよ~
【Activityのレイアウト】
【実装編(Fragmentクラスの作成)】
【実装編(Activityからの呼び出し)】
【終わりに】

Activityのレイアウト

ささっとMainActivityのレイアウトを紹介します
TextViewでタブっぽいものを3つ用意します
タップされたらFrameLayoutの中が変化するようにしていきます

 

実装編(Fragmentクラスの作成)

ここからはプログラミングのお時間です
Fragmentクラスの実装方法を紹介していきます

Fragmentを継承したクラスを作成します
このクラスで目的のレイアウトを生成します
Inflaterを使用してxmlからレイアウトを取得したり、
インスタンスを生成して戻り値とすることで、動的に生成したり自由にできます

 

例では、Viewを取得してからすぐに終了しました
Viewに手を加えないようなら
return inflater.inflate(…);としても大丈夫。むしろこちらなら1行で記述できる
でも、手を加えないならそもそもFragmentで呼ぶ必要はあるのかどうか
短いならActivity内で記述した方がいい気もする

手を加えるなら(xmlのレイアウトを使用)
型 変数名 = (型)v.findViewById();で
インスタンスの生成ができるので、内容を編集していこう

手を加えるなら(動的に生成)
型 変数名 = new 型
で生成したいオブジェクトのインスタンスを取得していく
最後に戻りにしたら問題なし

inflateメソッドは引数が2つのinflate(int resource, ViewGroup root)も存在する
それぞれの引数に変化を与えて実行した結果、得られるViewの値は以下のようになった

引数が2つ 引数が3つ(true) 引数が3つ(false)
rootが有 rootに指定したView sourceに指定したView rootに指定したView
rootがnull sourceに指定したView sourceに指定したView sourceに指定したView

適切な場面での使い分けはまだ理解できていないですが、
今回はsourceであるViewを取得するようにしましょう

実装編(Activityからの呼び出し)

Activityの紹介をしていきましょう

このように実装しました。
Fragmentはcommitをしないと表示されないので注意が必要です

終わりに

前回のListViewを動的に生成するよりは理解しやすかったです
ListViewとFragment、どちらもよく使うと思いますので、しっかりと覚えておきたいです

最近は、IntentやServiceに触れる機会がありましたが、正直難しいです
早いうちに勉強するので、近いうちに記事にしたいと考えています
また、Object指向への理解も低いのが見受けられる所が多々ありました
そのため、Object指向のことをしっかりと勉強する必要がありそうです

記事のネタが豊富なうちはまだまだ未熟と思いますので、必死に勉強するのみです!

以上、火曜日担当:poppyからでした




アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム