Android Studio では、Android の設計および開発におけるベストプラクティスに基づいたコード テンプレートが用意されているため、適切な道筋に沿って美しく機能的なアプリを作成することができます。テンプレートを使用して、新しいアプリ モジュールや個別のアクティビティなど、特定の Android プロジェクト コンポーネントを作成できます。
一部のテンプレートでは、ナビゲーションドロワーやログイン画面など、一般的な用途に合わせたスターターコードが含まれています。初めてプロジェクトを作成する、既存のプロジェクトに新しいアプリ モジュールを追加する、またはアプリ モジュールに新たなアクティビティを追加するときは、このようなアプリ モジュールやアクティビティ テンプレートから選ぶことができます。
テンプレートを使用して、アクティビティだけでなくその他の Android プロジェクト コンポーネントを既存のアプリに追加することもできます。テンプレートには、サービスとフラグメントなどのコード コンポーネントと、フォルダや XML ファイルなどの非コード コンポーネントの両方が含まれています。
このページでは、アクティビティなどの Android プロジェクト コンポーネントをプロジェクトに追加する方法を説明します。また、Android Studio で使用できる一般的なアクティビティ テンプレートも紹介します。ほとんどのテンプレートは、マテリアル デザインに基づくユーザー インターフェースの原則を採用する Android Support Library に依存している点に注意してください。
プロジェクト コンポーネントの追加
図 1. [File] > [New] メニューの選択または [Project] ウィンドウの右クリックでアクセスできるテンプレート メニュー
Android Studio で提供されるテンプレート リストは随時追加されています。Android Studio では、図 1 に示す Activity や XML ファイルのように、追加するコンポーネントのタイプごとにテンプレートをグループ化しています。
テンプレートを使用して Android プロジェクト コンポーネントを追加するには、[Project]
ウィンドウを使用します。新しいコンポーネントの追加先となるフォルダを右クリックして、[New] を選択します。クリックしたフォルダに追加できるコンポーネントに応じて、図 1 のようにテンプレート タイプのリストが表示されます。
追加するテンプレートを選択すると、対応するウィザード ウィンドウが表示され、名前などコンポーネントの設定情報の入力を求められます。設定情報を入力すると、Android Studio で新しいコンポーネントのファイルが作成され、開きます。さらに、Gradle ビルドが実行され、プロジェクトが同期されます。
Android Studio の [File] > [New ] メニューを使用して新しい Android プロジェクト コンポーネントを作成することもできますが、その場合は [Project] ウィンドウで目的のフォルダに移動し、コンポーネントが適切な場所に作成されるようにしてください。
アクティビティ テンプレートの選択
テンプレートの最も一般的な使い方の 1 つは、既存のアプリ モジュールに新しいアクティビティを追加する場合です。たとえば、アプリのユーザー向けのログイン画面を作成するには、Login Activity テンプレートを使用してアクティビティを追加します。
このセクションでは、スマートフォン アプリやタブレット アプリでよく使われているアクティビティ テンプレートを紹介します。Android Studio では、Android Wear、Android TV、Cloud App Engine など、さまざまなタイプのアプリ モジュールに合わせたテンプレートも提供しています。アプリ モジュールを作成するときは、このようなさまざまなモジュールのテンプレートを参照できます。Google AdMobs 広告や Google マップなど、API 固有のモジュールに特化したテンプレートもあります。
次のスマートフォンおよびタブレット用テンプレートには、アカウントへのログイン、アイテムとその詳細を示すリストの表示、長文テキストのスクロールなど、特定の用途に応じたコード コンポーネントが含まれています。それぞれ、アプリ モジュール全体または個別のアクティビティとして機能します。
Basic Activity

このテンプレートでは、アプリバーとフローティング アクション ボタンを使うシンプルなアプリを作成します。一般的な UI コンポーネントを提供するこのテンプレートは、プロジェクトを開始する際のベースになります。
このテンプレートの内容は次のとおりです。
AppBarFloatingActionButton- 2 つのレイアウト ファイル: アクティビティで 1 つ、個別のテキスト コンテンツで 1 つ使用
Empty Activity

このテンプレートでは、1 つの Empty Activity と、テキスト コンテンツのサンプルを含む 1 つのレイアウト ファイルを作成します。アプリ モジュールやアクティビティを一から構築する際のベースになります。
このテンプレートの内容は次のとおりです。
- テキスト コンテンツを含む 1 つのレイアウト ファイル
Fullscreen Activity

このテンプレートでは、基本となるフルスクリーン ビューと、標準的な UI(ユーザー インターフェース)コントロールを含むビューを切り替えるアプリを作成します。デフォルトはフルスクリーン ビューです。端末の画面をタップすると標準ビューがアクティブになります。
このテンプレートの内容は次のとおりです。
- 標準ビューの要素を非表示にするためのタッチリスナーの実装
- 標準ビューに表示される、何も実行しないボタン
- 標準ビューの
AppBar - フルスクリーン ビューと、標準ビューの要素を配置したフレーム レイアウトの両方を含む 1 つのレイアウト ファイル
Login Activity

このテンプレートでは、標準的なログイン画面を作成します。ユーザー インターフェースには、メールアドレスとパスワードの各フィールドとログインボタンがあります。一般に、アプリ モジュール テンプレートではなくアクティビティ テンプレートとして使用されます。
このテンプレートの内容は次のとおりです。
- ユーザー インターフェースのメインスレッドとは別にネットワーク操作を処理するための
AsyncTaskの実装 - ネットワーク操作中に表示する進捗インジケーター
- 次の推奨されるログイン UI を含む 1 つのレイアウト ファイル:
- メールアドレスとパスワードの入力フィールド
- ログインボタン
Master/Detail Flow

このテンプレートでは、項目リストと各項目の詳細を表示するアプリを作成します。リスト画面で項目をクリックすると、項目の詳細を示す画面が表示されます。2 つの画面のレイアウトは、アプリを実行している端末により異なります。
このテンプレートの内容は次のとおりです。
- 項目のリストを表すアクティビティ
- 各項目の詳細を表示するためのアクティビティおよびフラグメントの各オプション
- 各画面の
FloatingActionButton - 項目の詳細画面で使用する折りたたみツールバー
- さまざまな端末の設定に対応した代替リソース レイアウト ファイル
Navigation Drawer Activity

このテンプレートでは、ナビゲーションドロワー メニューを使用した Basic Activity を作成します。通常のアプリバーに加えて、アプリの右側または左側からナビゲーション バーをスライドさせて表示します。
このテンプレートの内容は次のとおりです。
DrawerLayoutを使用したナビゲーションドロワーの実装、対応するイベント ハンドラ、メニュー オプションのサンプルAppBarFloatingActionButton- Basic Activity テンプレートに含まれるレイアウト ファイル以外に、ナビゲーションドロワーおよびナビゲーションドロワーのヘッダーで使用するレイアウト ファイル
Scrolling Activity

このテンプレートでは、折りたたみツールバーと長文コンテンツのスクロール ビューを使用するアプリを作成します。ページを下にスクロールしていくと、ヘッダーとして機能するツールバーが自動的に折りたたまれ、フローティング アクション ボタンが非表示になります。
このテンプレートの内容は次のとおりです。
- 通常の
AppBarに代わって表示される折りたたみツールバー FloatingActionButton- 2 つのレイアウト ファイル: アクティビティで 1 つ、テキスト コンテンツを個別に
NestedScrollViewに配置するために 1 つ使用
Settings Activity

このテンプレートでは、アプリのユーザー プリファレンスや設定を表示するアクティビティを作成します。PreferenceActivity クラスを拡張します。これは一般に、アプリ モジュール テンプレートではなくアクティビティ テンプレートとして使用されます。
このテンプレートの内容は次のとおりです。
PreferenceActivityを拡張するアクティビティ- 表示される設定を定義する XML ファイル(プロジェクトの
res/xml/ディレクトリに配置)
Tabbed Activity

このテンプレートでは、複数のセクション、スワイプ ナビゲーション、アプリバーを使用するアプリを作成します。セクションは、左右にスワイプしてナビゲートできるフラグメントとして定義されます。
このテンプレートの内容は次のとおりです。
AppBarFragmentPagerAdapterを拡張し、各セクションのフラグメントを作成するアダプタViewPagerインスタンス(セクション間でスワイプするためのレイアウト マネージャ)- 2 つのレイアウト ファイル: アクティビティで 1 つ、個別のフラグメントで 1 つ使用