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

如何更改android操作栏标题和图标,android,android-layout,android-actionbar,Android,Android Layout,Android Actionbar,我正在尝试在Android的ActionBar上做一些事情 我已经在操作栏的右侧添加了新项目 如何更改操作栏的左侧?我想更改图标和文本,我想在其他屏幕的操作栏中添加一个“后退按钮” 为此,您可以通过两种方式完成:XML或Java。请看这里: 因此: XML: 这是很容易做到的 如果要在代码中更改,请调用: setTitle("My new title"); getActionBar().setIcon(R.drawable.my_icon); 并将值设置为任意值 或者,在Android清单XM

我正在尝试在Android的ActionBar上做一些事情

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

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


为此,您可以通过两种方式完成:XML或Java。请看这里:

因此:

XML:


这是很容易做到的

如果要在代码中更改,请调用:

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

代码应该全部放在您的
onCreate
中,这样标签/图标的更改对用户来说是透明的,但实际上,它可以在活动生命周期的任何地方调用。

您可以通过向各自的可绘制文件夹添加任何您想要的图标来更改活动中的图标,然后在AndroidManifest.xml文件中更改此行:

android:icon="@drawable/ic_launcher"
以匹配图标的名称。或者把你的图标作为ic_启动器,如果它们是相同的图标。至于它所说的内容,添加或更改与res/values/strings.xml文件中匹配的字符串。然后,在AndroidManifest.xml文件中再次更改以下行:

android:label="@string/app_name"
不管你在他们身上有什么样的线索。您必须对整个应用程序以及您想要的任何活动执行此操作,但行是相同的


希望这能有所帮助。

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

要实现您所说的“后退”(更准确地说是“向上”)按钮功能,请阅读中的“使用应用程序图标进行导航”部分


最后,要更改图标,指南也会介绍这一点。简而言之,操作栏将在清单的
应用程序
活动
元素(如果有)中显示在
android:icon
中提供的图像。典型的做法是创建一个名为
ic_launcher.png
的应用程序图标(以您需要的各种密度),并将其放置在您的
drawable-*
目录中。

要使单个图标可供您的所有操作栏使用,您可以在Android清单中执行此操作

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

    ...

</application>

...

如果要更改操作栏标题,只需在活动的onCreate()中输入以下1行代码即可

getActionBar().setTitle("Test");

由于我在静态占位符片段类中使用了
setTitle()
,因此无法从静态上下文引用非静态方法setTitle(CharSequence)。我用
getActivity().getActionBar().setTitle(“新标题”)解决了这个问题

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


对于集合标题

getActionBar().setTitle("Title");
getActionBar().setIcon(R.drawable.YOUR_ICON_NAME);
用于设置图标

getActionBar().setTitle("Title");
getActionBar().setIcon(R.drawable.YOUR_ICON_NAME);

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

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

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

这篇文章的作者值得称赞

我在导航项Selected的
中使用了以下调用:

HomeActivity.this.setTitle(item.getTitle());

转到要更改操作栏标题名称并写入的特定活动的清单
android:label=“Title name”

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

setTitle("NewName");
这是我的工作:

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

转到AndroidManifest.xml文件。 查找
标记 在那里可以看到一个属性

android:label="@string/app_name"
现在转到res>values>strings.xml

改变

<string name="app_name">MainActivity</string> 
main活动

您想要的名字
范例

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>
<resources>
    <string name="app_name">Your Desired Name</string>
    <string name="action_settings">Settings</string>
</resources>

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

要从代码中执行此操作,应调用
setTitle(CharSequence text)
setTitle(int titleRes)
。除非您计划用自己的自定义视图替换整个标题栏,否则不要使用
requestWindowFeature(Window.FEATURE\u CUSTOM\u TITLE)
。如果您使用支持库添加操作栏,请使用
getSupportActionBar
而不是
getActionBar
getActionBar().setHomeButtonEnabled(true)
使用API级别14或更高,如果您只想在旧API和新API中使用后退按钮功能,则只需
getActionBar()。setDisplayHomeAsUpEnabled(true)
getSupportActionBar()。setDisplayShowTitleEnabled(true);在片名之前(“123”);如果使用代码getActionBar().setIcon(R.drawable.my_图标);你能让它点击吗?@JoseManuelAbarcaRodríguez谢谢你,这就是我所缺少的。在Kotlin中:
supportActionBar?.setDisplayShowTitleEnabled(true)
然后
supportActionBar?.title=“您的标题”
。当创建带有
startActivity
的活动时,它必须在
onResume
中完成,而不是在
onCreate
中完成。谢谢-我希望在应用程序外部有一个不同的图标(如“所有应用程序”中所示)和操作栏左侧的另一个图标。这起作用了。清单文件仍然有android:icon=“@drawable/ic_launcher”这是正确的方式,因为它
预加载图标,编程设置图标很慢!活动标签中的android:icon
应该是多大尺寸(dp)?如何设置标题更改的动画?
<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")
    }