Android Studio では、Android の設計と開発に関するおすすめの方法に基づいたコード テンプレートが用意されているため、適切な道筋に沿って美しく機能的なアプリを作成することが可能です。テンプレートを使用して、新しいアプリ モジュールや個別のアクティビティなど、特定の Android プロジェクト コンポーネントを作成できます。
一部のテンプレートには、ナビゲーション ドロワーやログイン画面など、一般的な用途向けのスターター コードが含まれています。初めてプロジェクトを作成する、既存のプロジェクトに新しいアプリ モジュールを追加する、アプリ モジュールに新しいアクティビティを追加するときに、このようなアプリ モジュールやアクティビティ テンプレートから選ぶことができます。
テンプレートを使用して、アクティビティだけでなくその他の Android プロジェクト コンポーネントも既存のアプリに追加することができます。テンプレートには、サービスやフラグメントなどのコード コンポーネントと、フォルダや XML ファイルなどの非コード コンポーネントの両方が含まれています。
このページでは、アクティビティなどの Android プロジェクト コンポーネントをプロジェクトに追加する方法を説明します。また、Android Studio で使用できる一般的なアクティビティ テンプレートも紹介します。ほとんどのテンプレートは、マテリアル デザインに基づくユーザー インターフェースの原則を採用する Android サポート ライブラリに依存している点に注意してください。
プロジェクト コンポーネントの追加

図 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 では、Wear OS、Android TV、Cloud App Engine など、さまざまなタイプのアプリ モジュールに合わせたテンプレートも提供しています。アプリ モジュールを作成するときには、こうしたさまざまなタイプのモジュール向けのテンプレートを参照できます。Google AdMobs 広告や Google マップなど、API 固有のモジュールやアクティビティに特化したテンプレートもあります。
次のスマートフォンおよびタブレット用テンプレートには、アカウントへのログイン、アイテムとその詳細を示すリストの表示、長文テキストのスクロールなど、特定の用途に応じたコード コンポーネントが含まれています。各コンポーネントは、アプリ モジュール全体または個別のアクティビティとして機能します。
Basic Activity

このテンプレートでは、アプリバーとフローティング操作ボタンを使うシンプルなアプリを作成します。一般的な UI コンポーネントを提供するこのテンプレートは、プロジェクトを開始する際のベースになります。
このテンプレートの内容は次のとおりです。
AppBar
FloatingActionButton
- 2 つのレイアウト ファイル(アクティビティ用のファイルと、テキスト コンテンツを抽出するためのファイル)
Bottom Navigation Activity

このテンプレートはアクティビティの画面下部に標準的なナビゲーション バーを表示し、ユーザーが 1 回のタップでトップレベル ビューを簡単に操作および切り替えられるようにします。このテンプレートは、アプリに 3~5 個のトップレベルの移動先がある場合に使用します。詳しくは、ボトム ナビゲーション コンポーネントの設計ガイドラインをご覧ください。
このテンプレートの内容は次のとおりです。
AppBar
- ボトム ナビゲーションのサンプル レイアウトを含む 1 つのレイアウト ファイル
Empty Activity

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

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

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

このテンプレートでは、項目リストと各項目の詳細を表示するアプリを作成します。リスト画面で項目をクリックすると、項目の詳細を示す画面が表示されます。2 つの画面のレイアウトは、アプリを実行しているデバイスによって異なります。
このテンプレートには、リスト項目での右クリック操作や一般的なキーボード ショートカットなど、マウスやキーボードによる特定の入力を処理するための API スタブも用意されています。
このテンプレートの内容は次のとおりです。
- 項目リストを表示するフラグメント
- 各項目の詳細を表示するフラグメント
- 各画面の
FloatingActionButton
- 項目の詳細画面で使用する折りたたみツールバー
- さまざまなデバイス設定に対応した代替リソース レイアウト ファイル
- リスト項目での右クリック操作を処理する ContextListener
- 項目リスト フラグメントでのキーボード ショートカットを検出する UnUnhandledKeyEventListener
Navigation Drawer Activity

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

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

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

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