[英]How do I change the android actionbar title and icon
我正在嘗試在 Android 的 ActionBar 上做一些事情。
我已經在操作欄的右側添加了新項目。
如何更改操作欄的左側? 我想更改圖標和文本,並且我想在其他屏幕的操作欄中添加一個“后退按鈕”
這很容易實現
如果要在代碼中更改它,請調用:
setTitle("My new title");
getActionBar().setIcon(R.drawable.my_icon);
並將值設置為您喜歡的任何值。
或者,在 Android 清單 XML 文件中:
<activity android:name=".MyActivity"
android:icon="@drawable/my_icon"
android:label="My new title" />
要在您的應用程序中啟用后退按鈕,請使用:
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
代碼應該全部放在你的onCreate
這樣標簽/圖標的變化對用戶來說是透明的,但實際上它可以在活動的生命周期中的任何地方被調用。
要使單個圖標可用於所有操作欄,您可以在 Android 清單中執行此操作。
<application
android:logo="@drawable/Image">
...
</application>
您只需要添加這 3 行代碼。 用您自己的圖標替換該圖標。 如果你想生成圖標使用這個
getSupportActionBar().setHomeAsUpIndicator(R.drawable.icon_back_arrow);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
在 Android 5.0 材料設計指南中不鼓勵在 actionBar 中使用圖標
要啟用它,請添加以下代碼
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setLogo(R.mipmap.ic_launcher);
getSupportActionBar().setDisplayUseLogoEnabled(true);
歸功於本文作者
如果您想更改操作欄標題,只需在您的 Activity 的 onCreate() 中提供以下 1 行代碼
getActionBar().setTitle("Test");
您可以通過將任何您想要的圖標添加到您各自的可繪制文件夾中來更改您的圖標,然后在您的 AndroidManifest.xml 文件中更改這一行:
android:icon="@drawable/ic_launcher"
以匹配您圖標的任何名稱。 或者將您的圖標作為 ic_launcher,如果它們是相同的圖標。 至於它說的是什么,添加或更改與您的 res/values/strings.xml 文件中匹配的任何字符串。 然后,再次在您的 AndroidManifest.xml 文件中,更改以下行:
android:label="@string/app_name"
到你在他們的任何字符串。 您必須對整個應用程序以及您想要的任何活動執行此操作,但行是相同的。
希望這可以幫助。
ActionBar actionBar = getSupportActionBar();
actionBar.setTitle(getString(R.string.titolo));
actionBar.setIcon(R.mipmap.ic_launcher);
actionBar.setDisplayShowHomeEnabled(true);
為此,您可以通過兩種方式實現:XML 或 Java。 請參閱此處: 如何更改操作欄上的文本
所以:
XML:
<activity android:name=".Hello_World"
android:label="This is the Hello World Application">
</activity>
爪哇:
public class TitleBar extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final boolean customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
if ( customTitleSupported ) {
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);
}
final TextView myTitleText = (TextView) findViewById(R.id.myTitle);
if ( myTitleText != null ) {
myTitleText.setText("NEW TITLE");
// user can also set color using "Color" and then "Color value constant"
// myTitleText.setBackgroundColor(Color.GREEN);
}
}
}
對於設置標題:
getActionBar().setTitle("Title");
對於設置圖標:
getActionBar().setIcon(R.drawable.YOUR_ICON_NAME);
我在onNavigationItemSelected
使用了以下調用:
HomeActivity.this.setTitle(item.getTitle());
在您的活動的 onCreate 函數中添加以下代碼。
setTitle("NewName");
轉到您要更改的特定活動的清單 操作欄標題名稱並寫入 android:label="Title name"
這對我有用:
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeAsUpIndicator(R.mipmap.baseline_dehaze_white_24);
默認情況下,操作欄標題將使用當前活動的標簽,但您也可以通過ActionBar.setTitle()
編程方式設置它。
要實現您正在談論的“返回”(更准確地說,“向上”)按鈕功能,請閱讀操作欄開發人員指南的“使用應用程序圖標進行導航”部分。
最后,要更改圖標,指南也涵蓋了這一點。 簡而言之,操作欄將在清單的application
或activity
元素中顯示android:icon
中提供的圖像(如果有的話)。 典型的做法是創建一個名為ic_launcher.png
的應用程序圖標(具有您需要的所有不同密度),並將其放置在您的drawable-*
目錄中。
我得到了non-static method setTitle(CharSequence) cannot be referenced from a static context
錯誤中non-static method setTitle(CharSequence) cannot be referenced from a static context
因為我在靜態 PlaceholderFragment 類中使用了setTitle()
。 我通過使用getActivity().getActionBar().setTitle("new title");
解決了它getActivity().getActionBar().setTitle("new title");
轉到AndroidManifest.xml文件。 找到<application>
標簽在那里你可以看到一個屬性
android:label="@string/app_name"
現在轉到res > values > strings.xml
改變
<string name="app_name">MainActivity</string>
到
<string name="app_name">Your Desired Name</string>
例子
AndroidManifest.xml
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
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=".SubmitForm">
</activity>
</application>
字符串.xml
<resources>
<string name="app_name">Your Desired Name</string>
<string name="action_settings">Settings</string>
</resources>
您還可以執行以下操作:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
setSupportActionBar(toolbar)
setTitle("Activity 2")
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.