কম্পিউটার টিউটোরিয়াল

Android-এ বর্তমান এক্টিভিটি নাম (Activity Name) প্রিন্ট করা

getLocalClassName() এবং getClass().getSimpleName() ব্যবহার করে এক্টিভিটি নাম বের করা

Android-এ বর্তমানে চলমান এক্টিভিটি ক্লাসের নাম জানার জন্য দুটি সাধারণ পদ্ধতি আছে: getLocalClassName() এবং getClass().getSimpleName()।

লেআউট (activity_main.xml)

<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    android:padding="16dp">

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="24sp"
        android:padding="16dp"
        android:textAlignment="center" />

</LinearLayout>

MainActivity.java

package com.example.myapplication;

import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = findViewById(R.id.text);

        // পদ্ধতি ১: ComponentName থেকে লোকাল ক্লাস নাম
        String localClassName = getLocalClassName(); // "MainActivity"

        // পদ্ধতি ২: Java Reflection থেকে সিম্পল নাম
        String simpleName = getClass().getSimpleName(); // "MainActivity"

        // পদ্ধতি ৩: ফুলি কোয়ালিফাইড ক্লাস নাম
        String canonicalName = getClass().getCanonicalName(); // "com.example.myapplication.MainActivity"

        // পদ্ধতি ৪: Intent থেকে (যদি লঞ্চার থেকে আসে)
        String action = getIntent().getAction(); // "android.intent.action.MAIN"
        String category = getIntent().getCategories() != null ? getIntent().getCategories().toString() : "none";

        String output = "Method 1 - getLocalClassName():\n" + localClassName +
                       "\n\nMethod 2 - getClass().getSimpleName():\n" + simpleName +
                       "\n\nMethod 3 - getClass().getCanonicalName():\n" + canonicalName +
                       "\n\nIntent Action:\n" + action +
                       "\n\nIntent Categories:\n" + category;

        textView.setText(output);
    }
}

পদ্ধতিগুলোর পার্থক্য

মেথডরিটার্নব্যবহার
getLocalClassName()Stringম্যানিফেস্টে ডিক্লেয়ার্ড এক্টিভিটি নাম (প্যাকেজ ছাড়া)
getClass().getSimpleName()StringJava ক্লাসের সিম্পল নাম (অনোনিমাস ক্লাসের জন্য ভিন্ন হয়তে পারে)
getClass().getCanonicalName()Stringফুল প্যাকেজ + ক্লাস নাম
getComponentName().getClassName()Stringইন্টেন্টে ব্যবহৃত কম্পোনেন্ট নাম

ব্যবহার কেস

  • Analytics/Logging: কোন স্ক্রিনে ইউজার কতক্ষণ আছে ট্র্যাক করতে
  • Debugging: ক্র্যাশ রিপোর্টে এক্টিভিটি নাম জানতে
  • Navigation: ডাইনামিক নেভিগেশন লজিকে কারেন্ট স্ক্রিন জানতে
  • Testing: UI টেস্ট (Espresso) এ করেন্ট এক্টিভিটি ভেরিফাই করতে

Fragment-এ এক্টিভিটি নাম পাওয়া

// Fragment-এ থেকে
String activityName = requireActivity().getLocalClassName();
// অথবা
String activityName = getActivity().getClass().getSimpleName();

Android-এ বর্তমান এক্টিভিটি নাম (Activity Name) প্রিন্ট করা

  1. অ্যান্ড্রয়েডে বর্তমান থ্রেডের নাম পাওয়ার পদ্ধতি

  2. অ্যান্ড্রয়েডে পূর্ববর্তী অ্যাক্টিভিটিতে ফিরে যাওয়া

  3. অ্যান্ড্রয়েডে চলমান অ্যাপ্লিকেশন তালিকা পাওয়ার উপায়

  4. এন্ড্রয়েডে প্রোগ্রামেটিক্যালি বর্তমান GPS লোকেশন কীভাবে পাবেন?