如何更改android操作栏的标题和图标

我正在尝试在Android的动作栏上做一些事情。

我已经在操作栏的右侧添加了新项目。

如何更改操作栏的左侧?我想改变图标和文本,我想在其他屏幕的操作栏中添加一个“返回按钮”

Android操作栏

407140 次浏览

为此,可以采用两种方式:XML或Java。看这里:如何更改操作栏上的文字

所以:

XML:

<activity android:name=".Hello_World"
android:label="This is the Hello World Application">
</activity>

Java:

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);
}
}
}

这很容易做到

如果你想在代码中改变它,调用:

setTitle("My new title");
getActionBar().setIcon(R.drawable.my_icon);

并将值设置为您喜欢的任何值。

或者,在Android manifest XML文件中:

<activity android:name=".MyActivity"
android:icon="@drawable/my_icon"
android:label="My new title" />

要在应用程序中启用后退按钮,请使用:

 getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);

这些代码都应该放在onCreate中,这样标签/图标的变化对用户是透明的,但实际上它可以在活动生命周期的任何地方被调用。

你可以在你的可绘制文件夹中添加任何你想要的图标,然后在你的AndroidManifest.xml文件中更改这一行:

android:icon="@drawable/ic_launcher"

来匹配你的图标的名字。或者把你的图标作为ic_launcher,如果它们是相同的图标。至于它说什么,添加或改变任何字符串匹配的res/values/strings.xml文件。然后,再次在AndroidManifest.xml文件中修改这一行:

android:label="@string/app_name"

到他们的字符串中。您必须为整个应用程序以及您想要的任何活动执行此操作,但行是相同的。

希望这能有所帮助。

默认情况下,操作栏标题将使用当前活动的标签,但你也可以通过ActionBar.setTitle()编程设置它。

要实现你所说的“后退”(更准确地说,“向上”)按钮功能,请阅读操作栏开发者指南中的“使用应用程序图标导航”部分。

最后,要更改图标,指南也包括了这些内容。简而言之,操作栏将在你的清单的applicationactivity元素(如果有的话)中显示在android:icon中提供的图像。典型的做法是创建一个名为ic_launcher.png的应用程序图标(在你需要的所有不同密度中),并将其放置在你的drawable-*目录中。

要让一个图标可以被你所有的动作栏使用,你可以在你的Android Manifest中这样做。

<application
android:logo="@drawable/Image">


...


</application>

如果你想改变动作栏的标题,只需在你的活动的onCreate()中给出以下1行代码

getActionBar().setTitle("Test");

我得到non-static method setTitle(CharSequence) cannot be referenced from a static context错误,因为我在静态PlaceholderFragment类中使用了setTitle()。我通过使用getActivity().getActionBar().setTitle("new title");来解决它

您只需要添加这3行代码。将图标替换为您自己的图标。如果你想生成图标,使用

getSupportActionBar().setHomeAsUpIndicator(R.drawable.icon_back_arrow);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);

对于set Title:

getActionBar().setTitle("Title");

对于set图标:

getActionBar().setIcon(R.drawable.YOUR_ICON_NAME);

在Android 5.0中,材料设计指南不鼓励在actionBar中使用图标

要启用它,请添加以下代码

getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setLogo(R.mipmap.ic_launcher);
getSupportActionBar().setDisplayUseLogoEnabled(true);

功劳归于文章的作者

我在onNavigationItemSelected中使用了以下调用:

HomeActivity.this.setTitle(item.getTitle());
ActionBar actionBar = getSupportActionBar();
actionBar.setTitle(getString(R.string.titolo));
actionBar.setIcon(R.mipmap.ic_launcher);
actionBar.setDisplayShowHomeEnabled(true);

进入你想要更改操作栏标题名称和写入的特定活动的清单 android:label="Title name"

在活动中的onCreate函数中添加以下代码。

setTitle("NewName");

这对我来说很有用:

getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeAsUpIndicator(R.mipmap.baseline_dehaze_white_24);

进入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>

strings.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")
}