SHOEISHA iD

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

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

Android開発のためのJava SE再入門

Androidアプリにおけるユーザインタフェースの基本処理

Android開発のためのJava SE再入門(3)


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

トースト

 Androidには、トースト(Toast)と呼ばれる、画面にメッセージを表示する機能があります。トーストは、フェードインして表示され、一定時間経過後に自動的にフェードアウトします。

トーストの表示

 トーストを表示するには、android.widgetパッケージのToastクラスを使用します。通常、Toastクラスで定義されたmakeText()というスタティックメソッドを利用して、Toastクラスのオブジェクトを生成します。

 makeText()メソッドは、アプリケーションまたはアクティビティのContextオブジェクト、表示メッセージ、持続期間、の3つのパラメータを受けつけます。その後、実際の表示はshow()メソッドで行います。

 引数のContextとは、アプリケーションまたはアクティビティの状態を保持しているオブジェクトで、ウィジットの引数としてよく使われるものです。また、トースト表示の持続期間は、Toastクラスで定義されている、Toast.LENGTH_LONGまたはToast.LENGTH_SHORTという定数を指定します。

リスト7 HelloAndroid_4.java
// Contextの取得
Context context = getApplicationContext();
// Toastオブジェクトの生成
Toast toast = Toast.makeText(context,
                "Toastサンプル", Toast.LENGTH_LONG);
// 表示
toast.show();

// 以下のようにメソッドチェーンを利用して1行にすることもできる
Toast.makeText(this, "Toastサンプル", Toast.LENGTH_LONG).show();

 なお、makeText()、show()は、メソッドチェーンを利用して1行にすることもできます。このサンプルを実行すると、以下のような表示になります。

図9 トースト表示画面
図9 トースト表示画面

ダイアログ

 トーストは一方的に通知するだけですが、メッセージの表示だけでなく、何らかの入力が必要な場合に用いるのが、ダイアログです。通常ダイアログは、自動的に消えることなく、ユーザのアクションがあるまで表示され続けます。

AlertDialg

 Androidでは、いくつかのダイアログが標準で提供されています。ただし基本となっているのは、android.appパッケージのAlertDialgというクラスです。AlertDialgは、その名のとおり、警告など何かしらメッセージを表示するときに便利に使えるものです。またメッセージを表示するだけでなく、さまざまな表示方法に対応しており、高機能なコンポーネントです。

 今回は、AlertDialgクラスのかんたんな使い方を紹介しましょう。

ダイアログの生成と表示

 通常、AlertDialgを生成するには、AlertDialgクラスを直接用いるのではなく、AlertDialog.Builderというオブジェクトを利用します。

 AlertDialog.Builderは、引数にContextオブジェクト指定して生成し、その後、このオブジェクトのメソッドを使って、タイトルや表示するメッセージの設定、ボタンの設定を行います。

 次のサンプルコードは、OKボタンを持つダイアログです。

リスト8 HelloAndroid_5.java
// ダイアログの生成と表示
AlertDialog.Builder dlg =
    new AlertDialog.Builder(this);      // 引数はContextオブジェクト
dlg.setTitle("sample");                 // タイトル設定
dlg.setMessage("アラートダイアログ");   // メッセージ設定
dlg.setPositiveButton("OK", null);      // ボタン設定
dlg.show();                             // ダイアログの生成と表示

 show()メソッドで、ダイアログの生成と表示を行います。このコードを実行すると、次の表示になります。

図10 AlertDialg表示画面
図10 AlertDialg表示画面

 AlertDialogクラスでは、ダイアログを閉じるボタンとして、PositiveButton、NeutralButton、NegativeButtonの3つが定義されており、それぞれに対応した設定メソッドがあります。基本的にはボタンが1つならPositiveButton、2つならPositiveButton、NegativeButtonを用います。

ボタンのクリックリスナー

 setPositiveButton()メソッドの引数は、表示文字列と、ボタンのクリックリスナーです。リスナーを登録すると、ボタンのクリック時に実行する処理を記述することができます。なお、ここでのリスナーは、DialogInterface.OnClickListenerインターフェイスとなります。さきほどのビューでのボタンで用いた、android.view.View.OnClickListenerインターフェイスとは異なりますので注意してください。

 たとえば、ボタンをクリックしたときに、トーストを表示するなら、次のようになるでしょう。

リスト9 HelloAndroid_6.java
// ボタン設定
dlg.setPositiveButton("OK", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
        Toast.makeText(HelloAndroid.this,
                "OKボタンクリック", Toast.LENGTH_LONG).show();
    }
});

 onClick()メソッドの最初の引数には、クリックが発生したダイアログのオブジェクト、第2引数には、クリックが発生したボタンの種類が渡されます。ボタンの種類は、android.content.DialogInterfaceインターファイスで定義された、BUTTON_NEGATIVE、BUTTON_NEUTRAL、BUTTON_POSITIVEのいずれかの定数になります。

 なおToast.makeTextの第1引数では、HelloAndroidを指定しています。これは、単にthisだけでは、無名クラスのオブジェクトを指定したことになってしまうからです。

最後に

 今回は、ビューを用いたAndroid画面処理とイベント処理、トースト、ダイアログの表示といったユーザーインターフェイスの基本処理を解説しました。次回からは、改めて本題に戻って、Java SE APIを中心に説明することにします。

参考資料

修正履歴

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
Android開発のためのJava SE再入門連載記事一覧

もっと読む

この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、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編 」他、著書多数

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

WINGSプロジェクト 高江 賢(タカエ ケン)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6026 2011/07/21 12:07

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング