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

时间:2013-01-23 15:38:24

标签: android android-layout android-actionbar

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

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

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

Android Action Bar

17 个答案:

答案 0 :(得分:489)

这很容易实现

如果您想在代码中更改它,请致电:

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中,以便标签/图标更改对用户透明,但实际上可以在活动的生命周期内随处调用。

答案 1 :(得分:16)

要使所有操作栏都可以使用单个图标,您可以在Android Manifest中执行此操作。

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

    ...

</application>

答案 2 :(得分:10)

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

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

答案 3 :(得分:9)

如果您想更改操作栏标题,只需在您的活动的onCreate()中提供以下1行代码

getActionBar().setTitle("Test");

答案 4 :(得分:8)

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

启用它添加以下代码

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

归功于此article

的作者

答案 5 :(得分:6)

您可以通过在相应的可绘制文件夹中添加所需的任何图标来更改您的图标,然后在AndroidManifest.xml文件中更改此行:

android:icon="@drawable/ic_launcher"

匹配您图标的名称。或者将您的图标设置为ic_launcher,如果它们是相同的图标。至于它的内容,添加或更改与res / values / strings.xml文件中的字符串匹配的任何字符串。然后,再次在AndroidManifest.xml文件中,更改以下行:

android:label="@string/app_name"

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

希望这有帮助。

答案 6 :(得分:5)

为此,您可以通过两种方式实现:XML或Java。见这里:How to change the text on the action bar

所以:

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

答案 7 :(得分:4)

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

答案 8 :(得分:3)

设置标题

getActionBar().setTitle("Title");

对于设置图标

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

答案 9 :(得分:2)

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

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

答案 10 :(得分:1)

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

setTitle("NewName");

答案 11 :(得分:1)

为我工作:

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

答案 12 :(得分:0)

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

解决了这个问题

答案 13 :(得分:0)

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

要实现您正在讨论的“返回”(更确切地说,“向上”)按钮功能,请阅读Action Bar developer guide的“使用应用导航图标”部分。

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

答案 14 :(得分:0)

转到要更改的特定活动的清单操作栏标题名称并写入  android:label =&#34;标题名称&#34;

答案 15 :(得分:0)

转到 AndroidManifest.xml 文件。 找到<application>标签 在那里,您可以看到一个属性

android:label="@string/app_name"

现在转到 res>值> 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>

答案 16 :(得分:0)

您还可以执行以下操作:

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main2)
        setSupportActionBar(toolbar)
        setTitle("Activity 2")
    }