ฉันใช้
Window w = getWindow();
w.setTitle("My title");
เพื่อเปลี่ยนชื่อของกิจกรรมปัจจุบันของฉัน แต่ดูเหมือนจะไม่ทำงาน
ใครช่วยแนะนำฉันเกี่ยวกับวิธีการเปลี่ยนแปลงนี้ได้อย่างไร
ฉันใช้
Window w = getWindow();
w.setTitle("My title");
เพื่อเปลี่ยนชื่อของกิจกรรมปัจจุบันของฉัน แต่ดูเหมือนจะไม่ทำงาน
ใครช่วยแนะนำฉันเกี่ยวกับวิธีการเปลี่ยนแปลงนี้ได้อย่างไร
คำตอบ:
ลอง setTitle ด้วยตัวเองเช่นนี้
setTitle("Hello StackOverflow");
เพียงแค่ FYI คุณสามารถเลือกทำได้จาก XML
ใน AndroidManifest.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>
หากคุณต้องการเพียงครั้งเดียว & ให้ระบบจัดการส่วนที่เหลือ (ไม่ใช่แบบไดนามิก) ให้ทำดังนี้ในไฟล์รายการ:
<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>
setTitle(getResources().getText(R.string.MyTitle));
สิ่งนี้ใช้ได้สำหรับฉัน
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment, container, false);
getActivity().setTitle("My Title");
//...
}
มีวิธีที่เร็วกว่าเพียงแค่ใช้
YourActivity.setTitle("New Title");
คุณยังสามารถค้นหาได้จากonCreate ()ด้วยสิ่งนี้ตัวอย่างเช่น:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.setTitle("My Title");
}
โดยวิธีการสิ่งที่คุณไม่สามารถทำได้คือการเรียก setTitle () ในแบบคงที่โดยไม่ผ่านวัตถุกิจกรรมใด ๆ
หากคุณมีหลายกิจกรรมคุณสามารถตั้งค่าแบบนี้ได้ใน AndroidManifest.xml
<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>
ฉันใช้ Android Studio 3.0.1
กับกิจกรรม:
setTitle("Title Text");
ภายในส่วน:
getActivity().setTitle("Title Text");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.Main_Activity);
this.setTitle("Title name");
}
หากคุณต้องการตั้งชื่อในไฟล์ Java ให้เขียนกิจกรรมของคุณบนสร้าง
setTitle("Your Title");
ถ้าคุณต้องการใน Manifest แล้วเขียน
<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>
ฉันมี Toolbar ในกิจกรรมและกิจกรรมพื้นฐานที่แทนที่ชื่อเรื่องทั้งหมด ดังนั้นฉันต้องใช้ setTitle ใน onResume () ในกิจกรรมเช่น:
@Override
protected void onResume() {
super.onResume();
toolbar.setTitle(R.string.title);
}
รหัสช่วยให้ฉันเปลี่ยนชื่อ
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_name);
ActivityName.this.setTitle("Your Activity Title");}
หากคุณต้องการเปลี่ยนชื่อกิจกรรมเมื่อคุณเปลี่ยนกิจกรรมโดยคลิกที่ปุ่ม ประกาศตัวแปรที่จำเป็นใน MainActivity:
private static final String TITLE_SIGN = "title_sign";
ImageButton mAriesButton;
เพิ่ม onClickListener ใน onCreate () และสร้างความตั้งใจใหม่สำหรับกิจกรรมอื่น:
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();
}
});
รหัส SecondActivity ใน onCreate ():
String txtTitle = getIntent().getStringExtra("title_act");
this.setTitle(txtTitle);
หากคุณใช้onCreateOptionsMenuคุณสามารถเพิ่มรหัสsetTitleใน onCreateOptionsMenu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
setTitle("Neue Aktivität");
return true;
}