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

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

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

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

Android操作栏

这很容易完成

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

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

要启用应用程序中的后退button,请使用:

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

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

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

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

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

 getActionBar().setTitle("Test"); 

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

 android:icon="@drawable/ic_launcher" 

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

 android:label="@string/app_name" 

无论你在他们的string。 您必须为整个应用程序执行此操作,而且您需要执行哪些操作,但是行数是相同的。

希望这可以帮助。

你只需要添加这3行代码。 用自己的图标replace图标。 如果你想生成图标使用这个

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

为此,您可以通过两种方式来实现: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); } } } 

设置标题 :getActionBar()。setTitle(“Title”);

设置Icon :getActionBar()。setIcon(R.drawable.YOUR_ICON_NAME);

在Android 5.0材质devise指南中,不鼓励在actionBar中使用图标

以使其添加以下代码

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

信贷去这篇文章的作者

我在onNavigationItemSelected使用了下面的调用:

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

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

要实现您正在讨论的“Back”(更确切地说,“Up”)buttonfunction,请阅读Action Bar开发人员指南中的“使用应用程序图标进行导航”部分。

最后,要更改图标,指南也会覆盖这些图标。 简而言之,操作栏将在清单的applicationactivity元素(如果有)中显示android:icon中提供的图像。 典型的做法是创build一个名为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");