スライドでタブを切り替えられるUI作成

※この記事はAndroid開発初心者が模索しながら開発した時に、行ったことを書いた(or 説明した)記事なので、誤り等が多々とあると思います。ですので誤り等があったら優しく指摘してくれることを願っています。

イメージ

イメージとしてはTwiiterやLINEみたいな感じ。画面に複数のタブがあり、タブタップとスワイプによってタブを切り替えるUIを作成したい。

イメージ

f:id:mitoavadn:20161231021629p:plain

 

これを実装しようとした時に調べていたら、なんか難しそうな記事ばかり出てきて自分みたいなFragmentもわかっていない(今もなんとなくだけど)完全な初心者にとっては優しくなかったです。

よく見かけるUIだから簡単にできるのではと思い、そういえばAndroid Studioに元々用意されているActivityを全く見ていなかったなと思い見てみるとありました。

だから簡潔に言ってしまえばデフォルトで用意されているテンプレートみたいなの使えば終わりです。

 

見よう見まねですが説明させていただきます。

 

環境

Android Studio Version 2.2.3

java バージョン8

macOS Sierra バージョン10.12.2

 

手順

まずAndroid Studioを起動して、「Start a new Android Studio project」を選択します。

f:id:mitoavadn:20161231002801p:plain

 

次に、プロジェクト名やプロジェクトの保存先を決めて、右下にあるNextボタンを押します。

f:id:mitoavadn:20161231004102p:plain

 

押したら、次の画面に移ると思います。ここでAPIを13以上に設定します。そうしないと今回紹介する方法では出来ません(理由等は未調査)。APIを設定したら先ほどと同じくNextボタンをクリックします。

f:id:mitoavadn:20161231005454p:plain

 

次は下のような画面になると思います。ここでテンプレのActivityを選択することができます。(Activityに関してはこちら)

f:id:mitoavadn:20161231011549p:plain

 

その中から一番下にあるTabbed Activityを選択してNextを押します。

f:id:mitoavadn:20161231011606p:plain

 

そうすると、次のような画面になります。この画面の真ん中あたりにある「Navigation Style」を変更するとタブを切り替えるUIのタイプを変更できます。

f:id:mitoavadn:20161231011623p:plain

 

ここで変更できるタイプは3種類ありますが、今回はスライドでタブを切り替えられるUI作成なのでAction Bar Tabs (with ViewPager)だけにさせていただきます。

f:id:mitoavadn:20161231021434p:plain

 選択するとプロジェクトが作成されます。

 

作成されたプロジェクトをビルドするとこのようになると思います。

 

f:id:mitoavadn:20161231022035p:plain

 これでスワイプでタブを切り替えられるUIの作成が完了しました。

 

カスタマイズ(?)

スワイプでタブを切り替えられるUIを作成したとはいえ、タブの名前や数を変えたい、タブごとに対応した画面を表示したいなどあると思います。

 

・タブの名前を変える

MainActivity.javaの下の方にあるgetPageTitleを変更します。

ここで引数のpositionは、今見ている(表示されている?)タブの番号で、左から順に0,1,2...です。このposition変数に合わせて変更したいタブの名前を戻り値として返してあげればその名前になります。

f:id:mitoavadn:20161231022625p:plain

 

・タブの数を変える

getPageTitleの上の方にある(であろう)getCountを変更します。

ここでタブの数を戻り値として返してあげればその数タブができます。

デフォルトは3が戻り値となっており、この場合タブは3つです。

f:id:mitoavadn:20161231023300p:plain

 

タブごとに対応した画面を表示する

getCountの上にある(であろう)getItemを変更します。

ここでもgetPageTitleと同じようにpositionに対応したFragmentを戻り値として渡してあげれば良いです。(Fragmentについてはこちら)

f:id:mitoavadn:20161231024038p:plain

 

これで一通りの説明を終わらせていただきます。

最初の方にも書いた通り、詳しく分かっていないところだらけなので間違い等がございましたら指摘お願いいたします。

また疑問に思ったことなどもよろしくお願いします。

 

順序が逆になってしまいましたが次はAndorid Studioでプロジェクト作成する方法をまとめてみます。

 

mito.

今年のまとめ

※この記事はICT Advent Calender19日の記事です。

 

こんにちは、今日でICT12th女子の学校の成績が一気に心配になったmito(mitohato14)です。

昨日は眠人と1年生のroy-i、Shoでした。

nemu-sou.hatenablog.com 眠人

tip36.hatenablog.com Sho

 

roy-l.hatenablog.com roy-l

 

一年生にはこれからも頑張って欲しいです。

 

知っている人が多いとは思いますが、このmito、12月6日をもってICT委員会の副委員長となりました。

どうぞよろしくお願いします。

 

今年の出来事(覚えている限り)

Unity入門した

新しいパソコンを得た

イデア出し

愛媛大学工学部情報工学プログラミングコンテスト参加(大会名間違っていたらごめんなさい)

PCKプログラミングコンテスト予選参加

Androidアプリ開発

JOI予選参加

うちな〜ICTビジネスプラン発表会参加

 

取った賞や成績

愛媛大学工学部情報工学プログラミングコンテスト:優秀賞(多分)

パソコン甲子園プログラミング部門(予選):4か5完(よく覚えていない)

もう一つの本戦:不参加なので分からず(きしもんがやったらしい)

 パソコン甲子園モバイル部門:ベストデザイン賞

JOI予選:320点(Bランク)

うちな〜ICTビジネスプラン発表会:フロム沖縄理事長賞

 

 感想(羅列)

去年と比べ、いろいろな経験や仕事をしたと思う。

パソコン甲子園本戦に行って、賞を取ったのが一番嬉しかったし、悔しかった。

自己贔屓と言われたらそこまでだけど、グランプリ取れてもおかしくなかった内容だったと思うから、グランプリ取れなくて悔しかった(もちろん、ベストデザイン賞も嬉しいです)

大会等で賞を頂いたのがこれが実質初めてなので嬉しかった。

ご飯美味しかった。

温泉素晴らしい。

秋葉原にまた行きたい(一人でも)

パソコン甲子園があるから高専祭の準備等ではほとんど仕事しないと決めていたのに気づいたら結構仕事していた

JOIで手計算で出した簡単なテストケースを間違えて、Aランクに届かなかったのが悔しい

競プロの精進

先輩たちの技術を吸収せねば

受賞の代わりに成績が落ちてゆく

 

来年やりたいこと

kotlin

開発

C#

プレゼンを今年よりも練習(負けたので)

情報技術者試験の勉強

 

まとめ

このまま書いていってもグダる可能性しかないのでここらでまとめを

 

まだ意識たかそう

来年もパソコン甲子園の方に出るつもりなので次はグランプリ取りたいです。

高専のプロ各位と会ってみたい

ぱんぷきんたるとは復活するのか

@12th、来年は自分たちが入学した頃のコーヤ先輩達の学年ですよ?

来年は今年よりも仕事が増える(確定)

また、メディア上位陣と並べるように学校の勉強も頑張る

体調大事

 

 

明日はICT委員会スポンサーの某社の某さんです。

front.hatenablog.jp

 

mito.

Android開発初心者が開発して詰まった話

JOI予選まであと一週間しかないけど、競プロのやる気が起きないのでJOI終わった後に書こうと思っていた記事を書く

(この記事は開発初心者がAndroid開発をした時に、詰まったところやわからなかったことが主ですので注意ください。間違ってるところとかあれば指摘お願いしたいです。)

 

PCK2016モバイル部門に参加時にAndroid開発(実質初めて)をしました。

開発自体は去年、Unityやらvisualstudioでやったことあったんですが、ほとんど本読みながら「なるほどね〜」って感じでやってました。

 

・開発環境

Android Studio ver 2.X

java ver8

 

・詰まったところ

ライフサイクルって何

ライフサイクルがわからないからどこから呼ばれるのかがわからない(main関数みたいなのがあると思ってた)

ActivityとFragment

サーバとの通信ってどうやるの

UI操作しようとしたらアプリが落ちるんだけど

スワイプで画面遷移って難しすぎでは

ソフトキーボード消えてくれない

トークアプリを作ってやり方を記事にしている人って案外少ない(検索力不足の可能性)

テンプレートの存在(というより種類か)

 

 

これらの原因とか理由、やり方は理解しました(完全になんて言えない)

(Qiita、stackoverflow、google先生、Estimote communityの方、ict委員会の先輩方に圧倒的感謝)

 

・今回開発してみて思ったこと

やってみるのが早いは正しい(ただし、一応ある程度知ってないと死ぬ)

学校推奨パソコンのままでやってたらアプリ動かせるまでできてない気がする

英語は大切

進捗管理も大切

バックアップも大切

体調管理も大切

やる気が起きない時はやっても特に進捗生えない

 

・まとめ

特にAndroid開発はほぼ初めてで分からないことだらけだったけど調べながらやったらなんとかなる

聞くの大切

英語大切

やってみると分かる(いろいろと)

開発はつらい

開発は楽しい

開発は楽しい

 

楽しい

 

開発はつらい時が多いけど楽しい(一応言っておくとM気質はありません)

 

次はkotlinで開発やってみたいなと思ってます。

 

mito.

 

---------------------

同日、17:10追記

解決法や今回の開発で使った技術については後日にちゃんと書きます

ストーリーセラーを読んで

春休みで時間がある(登校日よりは)ので沢山本を読みたいなと思ってます。

 

その一冊目が有川浩さんの「ストーリーセラー」でした。

f:id:mitoavadn:20160224133941j:plain

この本のあらすじ

小説家と、彼女を支える夫を襲ったあまりにも過酷な運命。極限の決断を求められた彼女は、今まで最高の読者でいてくれた夫のために、物語を紡ぎ続けた―。極上のラブ・ストーリー。「Story Seller」に発表された「Side:A」に、単行本のために書き下ろされた「Side:B」を加えた完全版。」     GoogleBooksより引用

 

 

感想

泣ける。本当にね、ずるい。

こんな良い作品は久しぶりに読んだ。

この夫婦の仲が本当に良くて、すごい羨ましい。

こんなにも相手のためになれるって良い。

 

この記事を読んでもどんな作品なのか分かりづらいので…

ぜひ読んでください!

なんなら貸します!

 

やはり有川浩の作品は素晴らしいです

 

mito

学期末テストが終わった…

今日、学期末テストが終わりましたね。皆さまお疲れ様でした。

単位はどうですか? 自分は大丈夫そうです。

 

テストが終わってすぐのこの時点でいくつか間違ったところがあるので残念です…

速報で見たのですが、数Ⅰでは満点を取ることが出来ました。でも一番勉強してたであろう数Ⅱがランキング外だったのが悔しいです。

他の教科もそれなりにできました。

 

今回もテストの前にテスト対策の勉強会(?)を開催しました。

 

まあメンバーは、ほんとんど変わらずです。

教えたのは物理と数Ⅱが主でした。(とういうかベクトル?)結構遅くまでお疲れ様でした。最近はもう一人(daim)が教える頻度がとても高くなって良いです。

 

勉強会の時に、教え方良くなってるって言われて嬉しかったです。

人に教えてると、どこをどういう風に伝えたら伝わりやすいかってのがわかってくるんでしょうかね。知りませんけど(笑)

もしそうならこれからのためにも積極的に教えていきたいですね。

 

教えてて思ったのがみんな同じようなところや問題が分からないんだなってことです。なので次教える機会があればみんなに一度で教えられるようにしたいです。

 

来年度以降もこの勉強会はきっと続けるべきでしょう。(需要がありそうなので…)

 

テストが終わったので、この勉強会もしばらくお休みでしょう。

でも、聞きたいところがあるなら言ってください。(再試の対策も付き合いますよ)出来るだけ応えさせていただきます。twitterでもLINEでも、直接でも構いません。

 

最近は図書館に結構いると思います。(もし寝てたりしても起こして構いません。むしろ起こしてください)

 

テストが終わったので今までできなかった趣味の勉強がやっと出来ます。春休みはほとんどそれで潰れるでしょう。春休みも夏みたいにどこか行きたいです。オススメの場所等があったら教えてください。

 

ではこの辺でさよなら

 

mito

PC(ほぼ)初心者がPCをwindows10にアップグレードした話

今日、自分のノートPCをwindows10にアップグレードしました。

家にあるデスクトップPCはすでにwin10にしていたのですがノートPCでやるのは初めてでした。(そもそもアップグレード作業自体が二回目)

一時間ぐらいで作業は完了したと思います。

なぜ今したのかについては特に理由はありません

 

感想

仮想デスクトップ最高

pdfリーダーがウインドウで出てくれる

ストレージ管理が楽にできそう

帰ってきたスタートメニュー

謎のcortana

 

 

動作が重い(アップグレードしたばかりだからかな)

なかなか隠れてくれないタスクバー

 

まだ自分はPC初心者なのでうまく使いこなせるか何が良くなっているのかなどは詳しくはわからないので使って慣れていこうと思います。まだ知らないコマンドが多いのでそれの勉強もしたいです。

 

アップグレードした一番の理由は仮想デスクトップの存在です。

良いですよ。

 

(PCを使いこなしたい)

mito

 

サイエンスリーダー育成講座に参加した話

子供科学人材育成事業(中学生及び高校生プロジェクト) サイエンス・リーダー育成講座/沖縄県

 

1/9~1/11の三連休にサイエンスリーダー育成講座というプロジェクト(?)に参加してきました。コースは脳の情報処理でした。

どんなことを勉強したのかとか気になる人もいると思いますが、詳しいことは同じく参加したしゅりのブログを見てください。(とてもわかりやすくまとめてくれると思います)

mosmos-syrc.hateblo.jp

なんでメディア生が参加してるんだよとかやっぱりmitoはメディア生じゃないとか言いたい人もいるかもしれませんが、やめてください(笑)

参加しようと思ったのはメディアのある先生から話を聞いて興味を持ったのと、まだ比較的時間のある一年生の内から視野を広げていきたいと思ったのが主です。

 

このプロジェクトは二回に分けて行われたのですが、自分としゅりは手続等のミスで一回目は参加できませんでした。(残念)

 

応募するころ(夏休み当たり)はどうせ暇してるだろうから申し込みしておこうと思っていたんですが行く前になると意外にも課題が多くて行きたくないなと思いました…。(課題が辛そうだったので合宿中にもプレゼン書いていました)

 

でも参加してみてとても良かったです。視野を広げることもできたと思いますし、何よりとても楽しかったです。途中からの参加だったので、周りと仲良くできるか心配でしたが、一日目の夕方ごろには班長(高専生)に違和感ないって言っていただきました。それに講師の先生もとても良い人でした。

 

勉強でも驚くこと多かったんですが、このプロジェクトに高専関係者が多く関わっていたことも驚きでした。

 

最終日の全体発表が終わると修了書と記念品(ピンバッチ)ももらいました。

f:id:mitoavadn:20160115230853j:plain

 

まとめ

今回参加してみて、本当に良かったです。OISTの先生から教えてもらうなどのとても貴重な体験をさせてもらえたと思います。それに他校の(それも上級生)の友達も出来ましたし、久しぶりに元同中の子と会うことも出来ました。シュークリームおいしかったです。今回学んだことをもっと深めてプログラミングなどの他分野にも応用出来たら良いなと思います。

 

書き足りないですが全部書くと大変なことになるのでこれぐらいで失礼します。

 

(フグの刺身食べたかった)

mito