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

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

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


当前回答

对于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);

功劳归于这篇文章的作者

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

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

    ...

</application>

进入AndroidManifest.xml文件。 找到<application>标记 在这里您可以看到一个属性

android:label="@string/app_name"

现在转到res > values > strings.xml

改变

<string name="app_name">MainActivity</string> 

to

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

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

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

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

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

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