एंड्रॉइड में टूलबार टाइटल पर क्लिक लिस्टनर सेट करना
यह ट्यूटोरियल दिखाता है कि कस्टम Toolbar में TextView को टाइटल के रूप में उपयोग करके उस पर क्लिक लिस्टनर कैसे सेट करें - स्टैंडर्ड एक्शन बार टाइटल क्लिकेबल नहीं होता।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project चुनें।
चरण 2: लेआउट (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:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<androidx.appcompat.widget.Toolbar
android:id="@+id/my_awesome_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize">
<TextView
android:id="@+id/toolbarTitle"
style="@style/TextAppearance.Widget.AppCompat.Toolbar.Title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:background="?attr/selectableItemBackground"
android:paddingStart="16dp"
android:paddingEnd="16dp" />
</androidx.appcompat.widget.Toolbar>
<TextView
android:id="@+id/text"
android:textSize="20sp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:padding="16dp" />
</LinearLayout>
चरण 3: MainActivity कोड (java/MainActivity.java)
package com.example.myapplication;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
public class MainActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// डिफॉल्ट एक्शन बार छुपाएं
if (getSupportActionBar() != null) {
getSupportActionBar().hide();
}
// कस्टम टूलबार सेट करें
Toolbar toolbar = findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);
// टाइटल TextView पर क्लिक लिस्टनर
TextView toolbarTitle = findViewById(R.id.toolbarTitle);
toolbarTitle.setText("होम");
toolbarTitle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// टाइटल क्लिक एक्शन
finish(); // या कोई अन्य एक्शन
}
});
textView = findViewById(R.id.text);
textView.setText("टूलबार टाइटल पर क्लिक करें");
}
}
मुख्य बिंदु
- स्टैंडर्ड एक्शन बार टाइटल (
getSupportActionBar().setTitle()) क्लिकेबल नहीं होता - कस्टम
ToolbarमेंTextViewउपयोग करके क्लिकेबल बनाएं android:background="?attr/selectableItemBackground"रिपल इफेक्ट देता हैsetSupportActionBar(toolbar)टूलबार को एक्शन बार बनाता है
वैकल्पिक: पूरे टूलबार पर क्लिक
toolbar.setOnClickListener(v -> {
// टूलबार में कहीं भी क्लिक
finish();
});
// या केवल टाइटल एरिया
toolbar.setOnMenuItemClickListener(item -> {
if (item.getItemId() == android.R.id.home) return false; // होम अलग
return false;
});
उपयोग केस
- टाइटल क्लिक पर टॉप/रिफ्रेश स्क्रॉल
- होम/डैशबोर्ड पर वापस जाएं
- सर्च एक्सपैंड/कॉलेप्स
- फिल्टर/सॉर्ट डायलॉग खोलें
ऐप टेस्ट करें
चलाएं - टूलबार में "होम" टेक्स्ट पर क्लिक करें, एक्टिविटी फिनिश होकर वापस जाएगी।