অ্যান্ড্রয়েডে ক্রিয়াকলাপের শিরোনাম কীভাবে পরিবর্তন করবেন?


227

আমি ব্যাবহার করছি

Window w = getWindow();
w.setTitle("My title");

আমার বর্তমান ক্রিয়াকলাপের শিরোনাম পরিবর্তন করতে কিন্তু এটি কাজ করছে বলে মনে হয় না।

কেউ কীভাবে এটি পরিবর্তন করতে পারে আমাকে গাইড করতে পারে?

উত্তর:


498

সেটটিটল নিজেই চেষ্টা করে দেখুন:

setTitle("Hello StackOverflow");

1
সেটটাইটেল আমার পক্ষে কাজ করছে না, getSupportActionBar () এবং getActionBar () এছাড়াও বাতিল করতে পারে না আমি রানটাইমে শিরোনাম সেট করতে পারছি না।
নিনজা কোডিং

1
@ নিনজা_ কোডিং, ক্রিয়াকলাপ থেকে এটি কল করার চেষ্টা করুন।
জন পেরি 12

241

কেবলমাত্র একটি এফওয়াইআই, আপনি এটি এক্সএমএল থেকে বিকল্পভাবে করতে পারেন।

AndroidManLive.xML এ, আপনি এটি দিয়ে সেট করতে পারেন

android:label="My Activity Title"

অথবা

android:label="@string/my_activity_label"

উদাহরণ:

    <activity
        android:name=".Splash"
        android:label="@string/splash_activity_title" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

28
আপনি এটিকে কেন ভোট দেবেন? আপনি এটি এক্সএমএল থেকেও করতে পারেন তা জেনে রাখা ভাল।
বুলশার্ক

8
বহিরাগত স্ট্রিংয়ের উল্লেখ সহকারে সহজেই স্থানীয়করণ সক্ষম করার পক্ষে এটি করার মূল উপায় এটি। উত্তর গ্রহণ করা উচিত।
Davor

10
এটি সেটটাইটেল () এর মতো নয়। অ্যান্ড্রয়েড সেট করা: লঞ্চার ক্রিয়াকলাপের লেবেল সম্পত্তি ফোনের অ্যাপ্লিকেশনগুলির স্ক্রিনে অ্যাপ্লিকেশনটির নামও পরিবর্তন করবে। আপনার অ্যাপ্লিকেশনটির আইকনটিতে "আমার ক্রিয়াকলাপ শিরোনাম" ক্যাপশন থাকবে।
ডোরন জেহাবী

2
@doran আপনি যখন সঠিক আছেন এবং তাঁর উদাহরণটি একরকমভাবে ভুল, তিনিও সঠিক। তার সমস্যাটি একটি স্প্ল্যাশ স্ক্রিনে একটি লেবেল যুক্ত করছে এবং আপনি এটি কোনও স্প্ল্যাশ স্ক্রিনের জন্য করবেন না, কেবল অ্যাপ্লিকেশানের নাম দিয়ে লেবেল করুন। তবে পুরো অ্যাপ্লিকেশনটির
লেবেলটি

1
এটি সেরা উত্তর হওয়া উচিত।
ম্যাকসি 32

24

আপনি যদি একবার এটি চান এবং সিস্টেমটিকে বাকী অংশটি পরিচালনা করতে দিন (গতিশীল নয়) তবে আপনার ম্যানিফেস্ট ফাইলটিতে এটি করুন:

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name_full" > //This is my custom title name on activity. <- The question is about this one.
            <intent-filter android:label="@string/app_launcher_name" > //This is my custom Icon title name (launcher name that you see in android apps/homescreen)
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

14
setTitle(getResources().getText(R.string.MyTitle));

@ সুজয় হ্যাঁ, আপনি পারেন, আপনি এখানে: চেষ্টা করুন label int লেবেলরেস = getPackageManager ()। GetActivityInfo (getComp घटकName (), 0) .labelRes; লগার.ডি (this.getClass ()। GetSimpleName (), "labelRes:" + labelRes); যদি (লেবেলআরেস> 0 && getSupportActionBar ()! = নাল) {getSupportActionBar () সেটটাইটেল (লেবেলরেস); }} ক্যাচ (প্যাকেজম্যানেজ.নামনাটফাউন্ডএক্সেপশন ব্যতিক্রম) {লগার.ডি (this.getClass ()। getSimpleName (), "ব্যতিক্রম ধরা:" + লগ.জেটস্ট্যাক ট্র্যাসস্ট্রিং (ব্যতিক্রম)); }
ব্যবহারকারী 1510006

9

এটি আমার পক্ষে কাজ করেছে।

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment, container, false);
    getActivity().setTitle("My Title");
//...
}

7

আরও দ্রুত উপায় আছে, কেবল ব্যবহার করুন

YourActivity.setTitle("New Title");

এটির সাহায্যে এটি অনক্রিট () এর মধ্যেও খুঁজে পেতে পারেন , উদাহরণস্বরূপ:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        this.setTitle("My Title");
    }

যাইহোক, আপনি কেবল যা করতে পারবেন না সেটি হ'ল কোনও অ্যাক্টিভিটি অবজেক্ট ছাড়াই স্থির উপায়ে সেটটাইটেল () কল করুন।


স্ট্যান্ডবাই বোতাম টিপলে এবং স্ক্রিনটি আবার সক্রিয় করার সময় এটি কার্যকর হয় না। শিরোনাম আপডেট হয় না। কোন ধারনা?
জিম ক্লারমন্টস

এটি কারণ অনকারেট () আপনার উদাহরণ হিসাবে কল করা হবে না। পরিবর্তে আপনার অন্য ইভেন্ট হ্যান্ডলারটি ব্যবহার করা উচিত, যেমন অনারিউম ()। আমি আপনাকে এই লিঙ্কটি দেখতে পরামর্শ দিই: developer.android.com/guide/components/
Defrag

4

আপনার যদি একাধিক ক্রিয়াকলাপ থাকে তবে আপনি এটিকে অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএলে সেট করতে পারেন

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".NumbersActivity"
        android:label="@string/category_numbers"
        android:theme="@style/category_numbers" />
    <activity
        android:name=".FamilyActivity"
        android:label="@string/category_family"
        android:theme="@style/category_family" />
    <activity
        android:name=".ColorsActivity"
        android:label="@string/category_colors"
        android:theme="@style/category_colors" />
    <activity
        android:name=".PhrasesActivity"
        android:label="@string/category_phrases"
        android:theme="@style/category_phrases" />
    <activity
        android:name=".ExperimentActivity"
        android:label="@string/category_experiment"
        android:theme="@style/category_experiment" />
</application>

আমি ঠিক এটি পছন্দ করেছিলাম, এটি কাজ করে না। প্রতিটি ক্রিয়াকলাপে আমি কেবল অ্যাপের নাম দেখছি। এটি পরিবর্তন করতে অক্ষম। এখন আধঘন্টারও বেশি সময় হয়েছে :(
কৃপেশ আনাদকাত

2

আমি অ্যান্ড্রয়েড স্টুডিও 3.0.0 ব্যবহার করছি।

একটি ক্রিয়াকলাপের সাথে:

setTitle("Title Text");

একটি খণ্ডের ভিতরে:

getActivity().setTitle("Title Text");


1

আপনি যদি জাভা ফাইলে শিরোনাম সেট করতে চান, তবে অন ক্রিয়েটে আপনার ক্রিয়াকলাপে লিখুন

setTitle("Your Title");

আপনি যদি ম্যানিফেস্টে চান তবে লিখুন

    <activity
        android:name=".MainActivity"
        android:label="Your Title" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

1

আমার ক্রিয়াকলাপে একটি সরঞ্জামদণ্ড এবং একটি বেস ক্রিয়াকলাপ রয়েছে যা সমস্ত শিরোনামকে ওভাররাইড করে। সুতরাং আমাকে ক্রিয়াকলাপে অনারিউম () এ সেটটাইটেলটি ব্যবহার করতে হয়েছিল:

@Override
  protected void onResume() {
    super.onResume();
    toolbar.setTitle(R.string.title);
  }

1

কোডটি আমাকে শিরোনাম পরিবর্তন করতে সহায়তা করেছিল।

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_name);
    ActivityName.this.setTitle("Your Activity Title");}

0

আপনি বাটনে ক্লিক করে ক্রিয়াকলাপ পরিবর্তন করার সময় যদি কার্যকলাপের শিরোনাম পরিবর্তন করতে চান change মেইনএকটিভিটির প্রয়োজনীয় ভেরিয়েবলগুলি ঘোষণা করুন:

    private static final String TITLE_SIGN = "title_sign";
    ImageButton mAriesButton;

অনক্রিট () এ অন্লিক্লিকলিস্টনার যুক্ত করুন এবং অন্য ক্রিয়াকলাপের জন্য নতুন অভিপ্রায় তৈরি করুন:

    mTitleButton = (ImageButton) findViewById(R.id.title_button);
    mTitleButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent intent = new Intent(MainActivity.this, 
        SignActivity.class);
        String title_act = getText(R.string.simple_text).toString();
        intent.putExtra("title_act", title_act);
        startActivity(intent);
        finish();
        }
    });

অনক্রিট () তে সেকেন্ডঅ্যাক্টিভিটি কোড:

    String txtTitle = getIntent().getStringExtra("title_act");
    this.setTitle(txtTitle);

-1

আপনি ব্যবহার করেন, তাহলে onCreateOptionsMenu , এছাড়াও আপনি যোগ করতে পারেন setTitle onCreateOptionsMenu মধ্যে কোড।

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);

    setTitle("Neue Aktivität");
    return true;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.