Androidミニ講座

JavaでfindViewByIdにサヨナラするための2つの方法①(データバインディングライブラリ)

投稿日:

 

(ページの最下部に動画で詳しい解説をしていますので、よろしければご覧下さい)

Androidアプリを作る際に、レイアウトファイルに貼り付けたビュー(View)をソースファイルで使うためには、Activity#findViewByIdメソッドを使って、レイアウトファイルとソースファイル間のビューの結びつけをする必要があります。

これは、ビューが少なければいいのですが、使うビューが多ければ多いほど、処理の本質ではない「findViewById」メソッドのコードがこんな感じで増えてしまって、書くのも読むのも面倒な状況になってしまいます。

 

Javaの後継言語のKotlinであれば、「findViewById」にサヨナラするためのプラグインである「Kotlin Android Extensions」がAndroid Studioに標準で搭載されているので、何も考えること無く「findViewById」にサヨナラできるのですが、Javaの場合は残念ながら、標準ではそのような機能は備わっておわず、「どうしたもんかいな」という状況にあります。

 

この「どうしたもんかいな」をどうにかするための「データバインディングライブラリ」の最も簡単な使い方について、お伝えします。

(アノテーション処理などの詳しい説明は抜きで、とりあえずやり方だけ説明していますのでご了承下さい)

 

「データバインディングライブラリ」とは

Google先生の本家本元公式リファレンスによると、「データバインディングライブラリ」とは、

宣言的なレイアウトを作成し、アプリケーション ロジックとレイアウトをバインドするのに必要なコードを最小限に抑えるため

のライブラリなんだそうです。

このGoogle先生のサイトには、使い方も載っているのですが、ややわかりづらいので、以下のサイトを参考にさせて頂きました。

 

 

1.アプリケーションレベルのbuild.gradleで、データバインディングライブラリを使えるように設定

アプリケーションレベル(モジュールレベル)の「build.gradle」の「android」タグ内で、以下のように記述します。

 

2.レイアウトファイルのルートを「layout」タグで囲む

レイアウトファイルの「Design」ビューではなく、xmlのコードが書いてある「Text」タグの方から、レイアウトのルートを「layout」タグで括ってあげます。

こんな感じになっているのを

 

こんな感じにしてあげる

 

3.一旦ビルドする

この段階で一旦ビルドしてあげると、「app => build => generated」フォルダ内に「dataBinding」フォルダが作られます(これがないと次に進んでもビューをバインドしてくれない)。

 

 

4.結びつけたいソースファイルに「バインドさせるためのインスタンス」を設定

レイアウトファイルと結びつけたいソースファイル(Javaファイル)で、ビューをバインドするためのコードを以下のように書く。

ここで使っている「ActivityMainBinding」というクラスは、3のビルドで自動的に作られたクラスで、レイアウトファイルの名称に応じてクラスの名前が変わります。

上の例では、レイアウトファイルの名前が「activity_main.xml」なので、「ActivityMainBinding」となりました。

 

5.「バインドさせるためのインスタンス」を経由してビューにアクセスできるようになる

以上でやることはおわりで、ビューのアクセスしたい場合は、4で設定した「バインドさせるためのインスタンス」を経由してアクセスすることが出来ます。

こんな感じで

 

レイアウトファイルのxmlのコードを直接いじらないといけない部分はありますが、Javaで「findViewById」とサヨナラしたい場合は、中々使えるのではないかと思います。

(下の動画で詳しく解説していますので、よろしければご覧ください)

 

 

みんプロへのお問い合わせはこちらよりお気軽にお寄せ下さい

ほんまにやって
よかったなと

数度の挫折経験から
みんプロと出会ってわずか2ヶ月でアプリをリリース!
芝 毅仁さん大逆転劇インタビュー

詳しくはこちら


プログラミングで人々の人生を豊かにしたい

金融マンとしての挫折・家庭崩壊の危機からなぜかプログラミング事業を立ち上げた、みんプロ代表の長すぎるプロフィール

詳しくはこちら

経験ゼロから最短3ヶ月でアプリが出せる!

みんプロ式を今すぐチェック

全国どこからでも受講可
グループ・マンツーマンは無料体験
動画配信は30日間返金保証付き

  • この記事を書いた人
北川 博之 (みんなのプログラミング by Telulu LLC 代表)

北川 博之(みんなのプログラミング by Telulu LLC 代表)

大阪府生まれ。京都大学経済学部経済学科卒業。 2000年より、日本生命保険、ニッセイアセットマネジメント、パトナム・インベストメンツ(米国)で、日本株トレーダー・アナリスト、経営企画、システム開発等の業務に従事。主に日本株の売買執行・投資分析、経営計画の策定、海外投資家向け日本株営業、社内トレーディングシステム及び経理システムの開発等を行う。 2016年、合同会社てるる設立。スマホアプリプログラマーとして「新感覚脳トレアプリ・記憶戦隊オボエルンジャー」「Meiso-一番シンプルなマインドフルネス瞑想」「ご当地的鉄道アプリ・関西鉄道駅検定(京阪神編)」など、知育・メンタルヘルス系を中心に5タイトル・計10本のAndroid・iOSアプリをリリース。 2017年、自身のこれまでの社会人経験・プログラミング経験・子育て経験をを基に、プログラミングを通じて人々の人生を豊かにして、未来に希望の持てる明るい社会の実現に貢献したいとの想いから、ビギナー向けプログラミングひろば「みんなのプログラミング by Telulu LLC」を設立し、プログラミングサポーター活動と心理カウンセリング活動を開始。3児の父。 かなり長めのプロフィールをこちらから https://minpro.net/profile-of-ceo

「みんプロ式」が選ばれる3つの理由

1

  「みんプロ式」は、はじめてのアプリ作成からリリースまでを、最短3ヶ月で身につけて頂けるように設計された、完全初心者向けのAndroidスマホアプリ開発プログラミング講座です。 私自身の挫 ...

2

  「みんプロ式」は、今話題の「反転授業スタイル」を取っています。 「反転授業」とは、従来の「学校でインプット(講義)、自宅でアウトプット(宿題)」の方式を反転させ、「自宅でインプット(動画 ...

3

  プログラミングの学習は試行錯誤の連続です。どんなにわかりやすい講座でも、思わぬところでつまづくことがあります。 そんな悩みにお答えするのが、プログラミングサポーター(講師)の役割です。 ...

-Androidミニ講座

Copyright© みんプロ式・初心者向けAndroidスマホアプリ専門プログラミング講座/教室/スクール/塾-大阪府高槻市 , 2018 All Rights Reserved.