কাস্টম Toolbar-এ টাইটেল টেক্সটভিউতে ক্লিক লিস্টেনার যোগ করা
এই উদাহরণটি দেখাবে কিভাবে স্ট্যান্ডার্ড ActionBar ছাড়া androidx.appcompat.widget.Toolbar ব্যবহার করে একটি কাস্টম টাইটেল TextView যোগ করা যায় এবং সেটিতে ক্লিক লিস্টেনার সেট করা যায়। এটি টাইটেলে ক্লিক করলে নির্দিষ্ট অ্যাকশন (যেমন: হোমে যাওয়া, মেনু খোলা) করার জন্য দরকারী।
ধাপ ১: নতুন প্রজেক্ট তৈরি করুন
Android Studio-তে File → New Project দিয়ে প্রজেক্ট তৈরি করুন।
ধাপ ২: লেয়াউট ফাইল (res/layout/activity_main.xml)
Toolbar উইজেটের ভিতরে একটি স্টাইল করা TextView (id: toolbarTitle) রাখা হয়েছে যেটিতে ক্লিকেবল ব্যাকগ্রাউন্ড সেট করা হয়েছে।
<?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>
ধাপ ৩: জাভা কোড (src/MainActivity.java)
ডিফল্ট একশনবার লুকিয়ে কাস্টম টুলবার সেট করা হয়েছে, তারপর টাইটেল টেক্সটভিউতে ক্লিক লিস্টেনার যোগ করা হয়েছে।
package com.example.myapplication;
import android.annotation.SuppressLint;
import android.app.ActivityManager;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toolbar; // নোট: androidx.appcompat.widget.Toolbar ব্যবহার করা উচিত
public class MainActivity extends AppCompatActivity {
TextView textView;
@SuppressLint("RestrictedApi")
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide(); // ডিফল্ট একশনবার লুকান
setContentView(R.layout.activity_main);
// কাস্টম টুলবার সেট আপ (নোট: কাস্টম মেথড ব্যবহার করা হয়েছে, সেটসাপোর্টএ্যাকশনবার নয়)
setSupportActionBar((Toolbar) findViewById(R.id.my_awesome_toolbar)); // কাস্টম মেথড নিচে ডিফাইন
TextView toolbarTitle = findViewById(R.id.toolbarTitle);
toolbarTitle.setText("Home");
toolbarTitle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish(); // ক্লিক করলে এক্টিভিটি ফিনিশ
}
});
textView = findViewById(R.id.text);
textView.setText("Action bar title clicked");
}
// কাস্টম মেথড (সত্যিকারের setSupportActionBar টুলবার নেয়)
private void setSupportActionBar(Toolbar toolbar) {
// খালি ইমপ্লিমেন্টেশন - মূল কোডে Toolbar ব্যবহার করা উচিত
}
}
অ্যাপ্লিকেশনটি রান করুন
ডিভাইস সংযুক্ত করে Run করুন। টুলবারের "Home" টেক্সটে ক্লিক করলে এক্টিভিটি বন্ধ হবে।

সঠিক এবং আধুনিক ইমপ্লিমেন্টেশন
উপরের কোডে android.widget.Toolbar (সিস্টেম উইজেট) ব্যবহার করা হয়েছে, কিন্তু androidx.appcompat.widget.Toolbar ব্যবহার করা উচিত। সঠিক প্যাটার্ন:
// Import
import androidx.appcompat.widget.Toolbar;
// onCreate-এ
Toolbar toolbar = findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar); // বিল্ট-ইন মেথড
getSupportActionBar().setDisplayShowTitleEnabled(false); // ডিফল্ট টাইটেল লুকান
TextView toolbarTitle = findViewById(R.id.toolbarTitle);
toolbarTitle.setText("Home");
toolbarTitle.setOnClickListener(v -> {
// আপনার কাস্টম লজিক
onBackPressed(); // বা NavController.navigateUp()
});
এই প্যাটার্ন ম্যাটেরিয়াল ডিজাইন এবং Navigation Component-এর সাথে সাথ거운।