AndroidでアクションバーのタイトルにOnClickListenerを設定する方法
この記事では、Androidアプリのアクションバー(ツールバー)のタイトル部分にOnClickListenerを設定し、タイトルがタップされたときのクリックイベントを処理する方法を、サンプルコードとともにわかりやすく解説します。
手順1:新規プロジェクトを作成する
Android Studioを起動し、メニューから「File」→「New Project」を選択します。ウィザードに従って必要な項目を入力し、新しいプロジェクトを作成してください。
手順2:レイアウトファイル(activity_main.xml)を編集する
res/layout/activity_main.xml に以下のコードを記述します。
<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "https://schemas.android.com/apk/res/android"
xmlns:app = "https://schemas.android.com/apk/res-auto"
xmlns:tools = "https://schemas.android.com/tools"
android:layout_width = "match_parent"
android:gravity = "center"
android:layout_height = "match_parent"
tools:context = ".MainActivity"
android:orientation = "vertical">
<android.support.v7.widget.Toolbar
android:id = "@+id/my_awesome_toolbar"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:background = "@color/colorPrimary"
android:minHeight = "?attr/actionBarSize" >
<TextView
android:id = "@+id/toolbarTitle"
style = "@style/TextAppearance.Widget.AppCompat.Toolbar.Title"
android:background = "?attr/selectableItemBackground"
android:layout_width = "wrap_content"
android:gravity = "center_vertical"
android:layout_height = "match_parent" />
</android.support.v7.widget.Toolbar>
<TextView
android:id = "@+id/text"
android:textSize = "30sp"
android:layout_width = "match_parent"
android:layout_height = "match_parent" />
</LinearLayout>
上記のレイアウトでは、Toolbar の中にタイトル表示用の TextView を配置しています。ポイントは android:background="?attr/selectableItemBackground" を指定している点です。これにより、タイトル部分をタップした際にリップル(波紋)効果が表示され、「ここがクリックできる要素であること」がユーザーに直感的に伝わります。
手順3:MainActivity.java を編集する
src/MainActivity.java に以下のコードを記述します。
package com.example.myapplication;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// ツールバーを取得してアクションバーとして設定
Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);
// タイトル用TextViewにテキストを設定し、クリックリスナーを登録
TextView toolbarTitle = (TextView) findViewById(R.id.toolbarTitle);
toolbarTitle.setText("Home");
toolbarTitle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
textView = (TextView) findViewById(R.id.text);
textView.setText("action bar name Click");
}
}
このコードでは、まずレイアウトから Toolbar を取得して setSupportActionBar() に渡し、アプリのアクションバーとして設定しています。次に、ツールバー内のタイトル用 TextView を取得し、setText("Home") でタイトル文字列を設定したうえで、setOnClickListener() によってクリックリスナーを登録します。サンプルでは、タイトルがタップされると finish() を呼び出してアクティビティを終了するようにしています。
※ 注意:Toolbar はサポートライブラリの android.support.v7.widget.Toolbar(AndroidX 環境では androidx.appcompat.widget.Toolbar)をインポートしてください。フレームワーク標準の android.widget.Toolbar を使用すると setSupportActionBar() と互換性がなく、ビルドエラーや意図しない動作の原因になります。
アプリを実行して動作を確認する
それでは、実際にアプリを実行してみましょう。実機のAndroidスマートフォンをPCに接続していることを前提とします。Android Studioでプロジェクト内のいずれかのアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックします。表示されたダイアログで接続済みのモバイルデバイスを選択すると、しばらくして端末に以下のような画面が表示されます。

まとめ
標準の setTitle() ではアクションバーのタイトルにクリックイベントを持たせることはできません。そのため、ツールバー内に独自の TextView を配置してリスナーを設定するのが最もシンプルな実装方法です。?attr/selectableItemBackground を背景に指定すれば、通常のボタンのように自然な押下フィードバックも実現できます。ナビゲーションやホーム画面への遷移など、さまざまな場面で活用してみてください。
-
【Android】アクションバーのサイズ(高さ)を変更する方法をわかりやすく解説
この記事では、Androidアプリにおいてアクションバーのサイズ(高さ)を変更する方法を、実際のコード例とともにステップ形式で解説します。テーマのカスタマイズだけで簡単に実装できるので、ぜひ参考にしてください。手順1:新しいプロジェクトを作成するまず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目を入力してプロジェクトを作成しましょう。手順2:styles.xmlにアクションバーのサイズを定義する次に、「res/values/styles.xml」に以下のコードを追加します。ポイントは actionBarS
-
AndroidでVPNを設定する方法【専用アプリ・OpenVPNの手順を徹底解説】
モバイルデバイスでのブラウジングをもっと安全にしたいと思いませんか?それとも、Netflixの地域制限を回避したいだけでしょうか?VPN(仮想プライベートネットワーク)はそのどちらにも最適な選択肢です。では、AndroidでもVPNを設定できるのでしょうか? この記事では、AndroidデバイスにモバイルVPNをインストールして使う方法、そしてどのVPNを選ぶべきかについて詳しく解説します。さらに、スマートフォンでVPNの使用を避けるべき場面についても触れていきます。 なぜモバイルでVPNを使うのか? VPNといえば、デスクトップPCやルーター向けのツールというイメージが強いかもしれません。で