ภาพรวม
บทความนี้สาธิตวิธีดึง Subtitle (หัวข้อย่อย) ของ Action Bar ผ่าน getSupportActionBar().getSubtitle()
ขั้นตอนที่ 1: สร้างโปรเจกต์
Android Studio → File → New Project → Empty Activity
ขั้นตอนที่ 2: Layout (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:gravity="center"
tools:context=".MainActivity">
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="30sp"
android:gravity="center" />
</LinearLayout>
ขั้นตอนที่ 3: โค้ดหลัก (java/MainActivity.java)
package com.example.myapplication;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.text);
if (getSupportActionBar() != null) {
getSupportActionBar().setTitle("หน้าหลัก");
getSupportActionBar().setSubtitle("ผู้ใช้: sairam");
CharSequence title = getSupportActionBar().getTitle();
CharSequence subtitle = getSupportActionBar().getSubtitle();
textView.setText("Title: " + title + "\nSubtitle: " + subtitle);
} else {
textView.setText("ไม่มี Action Bar");
}
}
}
การตั้งค่า Subtitle แบบ Dynamic
// จาก Intent
String userName = getIntent().getStringExtra("user_name");
if (userName != null) {
getSupportActionBar().setSubtitle("ผู้ใช้: " + userName);
}
// อัปเดต Real-time (เช่น สถานะเชื่อมต่อ)
private void updateConnectionStatus(boolean connected) {
if (getSupportActionBar() != null) {
getSupportActionBar().setSubtitle(connected ? "เชื่อมต่อแล้ว" : "ตัดการเชื่อมต่อ");
}
}
ใช้กับ Toolbar
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
// ดึงจาก Toolbar โดยตรง
CharSequence subtitle = toolbar.getSubtitle();
// ตั้งค่า
toolbar.setSubtitle("Subtitle ใหม่");
Styling Subtitle
ใน themes.xml:
<style name="Theme.MyApp" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<item name="android:actionBarSubtitleTextAppearance">@style/MySubtitleStyle</item>
<item name="actionBarSubtitleTextAppearance">@style/MySubtitleStyle</item>
</style>
<style name="MySubtitleStyle">
<item name="android:textSize">14sp</item>
<item name="android:textColor">@color/white</item>
<item name="android:fontFamily">sans-serif-medium</item>
</style>
ทดสอบ
รันแอป จะแสดง Title: "หน้าหลัก" และ Subtitle: "ผู้ใช้: sairam"