宏志Tweet前回のおさらいと今回のテーマ前回はAndroidタブレットアプリを作るための環境構築と簡単なサンプルアプリを作りました。Androidタブレットアプリを作る上で最低限必要な準備ができたかと思います。今回はまず、前回作成したサンプルアプリをもとに、Androidのイベント処理の基本と注意点を説明します。ボタンがタップされた場合など、入力イベントが発生した時の処理の書き方や、イベント処理で気をつける点を説明します。後半では、AndroidタブレットアプリにはかかせないFragment機能について、どのような機能か説明し、Fragment機能を使ったサンプルアプリを作ってみます。Androidのイベント処理についてアプリを使っているユーザーが「画面上のボタンを押した」「戻るキーを押した」などの入力イベントが発生した場合、アプリでは発生した入力イベントに応じた処理を行うことができます。アプリ開発では、複数のコンポーネントが、配置された画面から発生する各入力イベントに応じた処理を記述し、画面遷移を行ったり、通信を行ったりしてデータの取得などを行います。イベント処理の記述方法まずは前回作ったサンプルアプリをもとにAndroidのイベント処理の記述方法について説明します。Eclipseを起動して、前回作ったHelloTabletプロジェクトのHelloTabletActivity.javaを表示してください。以下のような処理を追加しました。});この追加した処理がイベント処理の記述となります。ここでは、画面上に追加したボタンをタップした際にダイアログを表示する処理を記述しています。処理対象となるコンポーネントを決める(2行目のfindViewById()メソッド)どの入力イベントに対する処理かを決める(2行目のsetOnClickListener()メソッド)入力イベントに応じた処理を記述する(4行目のView.OnClickListenerインターフェースのonClick()メソッド)となります。イベント処理は各イベントに応じて変わるので、上記コードのように匿名クラスで記述することが一般的です(もちろん、Interfaceを実装したクラスを作成し、それを設定してもかまいません)。匿名クラスで記述する場合は以下の点に注意して記述してください。する必要がある「AndroidアプリからJavaをはじめました。」という場合、上記の制約があることを知らないために匿名クラスからアクセスされる変数はなんでもActivityのインスタンス変数にしてる場合があるので、そういうコードを見たらやんわり指摘してあげてください。主な入力イベントの種類Androidで用意されている主な入力イベントの種類について説明します。各イベントにはイベントに応じた処理を定義できるインターフェースが用意されていますので、それも合わせて紹介します。・クリックイベントコンポーネントをクリックした際に発生する入力イベントです。ボタンをタップした際にイベント処理を行う場合も、この入力イベントに対して処理を定義します。インターフェースとなります。メソッドでコンポーネントの入力イベントに結びつけます。・タッチイベントコンポーネントをタッチした際に発生する入力イベントです。クリックイベントとの違いは取得できる情報の違いとなります。タッチイベントでは「コンポーネントに触れた」「コンポーネントから離れた」「コンポーネント上で指を動かした」などの情報が取得できます。インターフェースとなります。メソッドでコンポーネントの入力イベントに結びつけます。タッチイベントはその性質上、クリックイベントより先にイベント通知が行われます。そのため、同一のコンポーネントにタッチイベントとクリックイベントを設定する場合は注意が必要です。以下のコードを追加して実行してみてください。});上記のコードを追加すると、ボタンを押してもダイアログが表示されなくなります。メソッドtrueを返し、「タッチイベントに関する処理は終了した。Frameworkに通知しているため、それ以降のタッチに関するイベント通知が行われなくなるためです。するとダイアログが表示されるようになります。このように、タッチイベントとクリックイベントを同時に設定する場合はMotionEventを確認し、どのイベントはタッチイベントとして処理するかを決めて実装を行うようにしてください。・戻るキーイベント戻るキーの入力イベントはコンポーネントに設定するのではなく、画面であるActivityに設定します。Activity#onBackPressed()メソッドを対象となるActivityクラスでオーバーライドしてください。以下のコードを追加してみてください。戻るキーに反応してダイアログが表示されるようになります。}図1:戻るキーを押した際の実行結果(クリックで拡大)その他にも設定することができる入力イベントはありますので、以下のURLをご確認ください。この著者の記事一覧テックファーム株式会社2002年にIBMに入社、Webシステム開発やオフショア開発のサポートなどを経験。2005年にテックファーム株式会社に入社し、主にFeliCaやNFCなど非接触ICを使ったモバイルアプリケーションの開発に携わっていました。現在はスマートフォン向けのアプリケーション開発やソリューション提案をメインに活動しています。ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。VeloCloudが選ばれる理由SD-WANとはなにか。Linuxエンジニア育成への思いF5とNGINXの組み合わせで、サービス公開をよりセキュアに。ITがお届けするポッドキャストです。