SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Android Studio 2で始めるアプリ開発入門

Androidアプリの画面遷移 ~ アクティビティの起動をつかさどるIntentクラス

Android Studio 2で始めるアプリ開発入門 第7回


  • X ポスト
  • このエントリーをはてなブックマークに追加

Androidの画面遷移(2)

アクティビティの起動とIntent

 では、そのような挙動をソースコードではどのように記述するのか、解説していきます。これは、以下の3ステップで記述でき、具体的には、リスト2の(10)~(12)です。その際中心となるクラスがIntentクラスで、このクラスが画面、すなわちアクティビティの起動をつかさどります。

 1)Intentクラスをnewします(リスト2の(10))。その際、引数が2個必要です。

 引数1はコンテキストです。ここでは、「MenuListActivity.this」と記述しています。

 引数2は起動するActivityクラス名です。クラス名ですので、拡張子「.class」を使います。ここでは、「MenuThanksActivity.class」と記述しています。

 2)起動先アクティビティに渡すデータを格納します(リスト2の(11))。これは、1)でnewしたIntentオブジェクトのputExtra()メソッドを使います。引数1にデータの名称、引数2にデータそのものを渡します。なお、起動先アクティビティにデータを渡す必要がない場合は、このステップそのものは不要です。

 3)アクティビティを起動します。これは、ActivityクラスのstartActivity()メソッドを使い、引数として1)でnewしたIntentオブジェクトを渡します(リスト2の(12))。

 これで、注文完了画面が起動します。

データの受け取り

 では、起動した注文完了画面では、どのようにして引き継ぎデータを受け取ればいいのでしょうか。ここでもIntentが活躍します。具体的には、リスト3の(1)と(2)です。

 (1)でIntentオブジェクトを取得します。これは、ActivityクラスのgetIntent()メソッドを使います。これで、このアクティビティの起動に関連したIntentオブジェクトが取得できます。

 取得したIntentオブジェクトのget○●Extra()メソッドを使って引き継ぎデータを取得します。引数として、データの名称を渡します。これが(2)です。ただし、このメソッド名の「○●」はデータ型で変わっています。今回はString型ですので、getStringExtra()となっています。

 リスト3の(2)以降の処理に関しては、ここで取得した引き継ぎデータを、それを表示させるTextViewにセットしている処理です。

 このデータの引継ぎ処理のため、注文完了画面ではリストでタップした定食名と金額が表示できるのです。

onClick属性

 最後に「リストに戻る」ボタンの処理を解説します。

 まず、MenuThanksActivityにはボタンのリスナクラスが存在しません。ボタンなどのタップ時の処理、つまり、onClick処理というのは、非常によくある処理です。ですので、onClickに関しては、リスナ登録の代わりとなる便利な機能がAndroidには用意されています。それが、onClick属性です。activity_menu_thanks.xmlの<Button>タグに

android:onClick="onBackButtonClick"

という属性を確認できると思います。

 Activityクラスで

public void onBackButtonClick(View view)

のように、戻り値がvoidで、引数がView型ひとつのメソッドを記述します(リスト3の(3))。このメソッド名をandroid:onClick属性として記述すると、リスナ登録などを自動で行ってくれます。

 今回は、この方法を使い、「リストに戻る」ボタンの処理を記述しています。

戻るは終了

 さて、そのonBackButtonClick()メソッド内の処理というのは、

finish();

の1行のみです(リスト3の(4))。このfinish()はActivityクラスのメソッドで、自身を終了させるメソッドです。上述の通り、Androidでは、画面に「戻る」というのは通常の「戻る」という考えではなく、自身が消滅することで下に隠れていた画面が表に出てくることです。ですので、表記として「リストに戻る」というボタンであっても、実際の処理はアクティビティの終了を行います。

次のページ
アクティビティのライフサイクル

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Android Studio 2で始めるアプリ開発入門連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 齊藤 新三(サイトウ シンゾウ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook<個人紹介>WINGSプロジェクト所属のテクニカルライター。Web系製作会社のシステム部門、SI会社を経てフリーランスとして独立。屋号はSarva(サルヴァ)。HAL大阪の非常勤講師を兼務。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9529 2018/05/23 15:36

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング