设置操作栏标题和副标题

我想在编译时间之前设置我的操作栏的标题和小标题。 我有办法做到这一点:

ActionBar ab = getActionBar(); ab.setTitle("My Title"); ab.setSubtitle("sub-title"); 

但是我不想在运行时做这件事。 有没有任何XML文件或任何我可以指定这些标题的位置?

我正在努力实现这一点:

在这里输入图像描述

编辑:

我希望在xml中使用它的原因是我希望在API级别8支持我的应用程序。至少在级别11上支持getActionBar()方法。

你可以做这样的事情来编写这两个版本:

 /** * Sets the Action Bar for new Android versions. */ @TargetApi(Build.VERSION_CODES.HONEYCOMB) private void actionBarSetup() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { ActionBar ab = getActionBar(); ab.setTitle("My Title"); ab.setSubtitle("sub-title"); } } 

然后在onCreate()调用onCreate()if仅在新的Android版本上运行代码, @TargetApi允许代码进行编译。 因此,它使旧版和新版API都可以安全使用。

或者,您也可以使用ActionBarSherlock ( 请参阅编辑 ),以便您可以在所有版本上使用ActionBar 。 你将不得不做一些改变,比如让你的Activities扩展SherlockActivity并调用getSupportActionBar() ,然而,这是一个非常好的全局解决方案。

编辑

请注意,当最初编写此答案时, ActionBarSherlock (此后不再使用 )是兼容性解决方案。

目前, Google的appcompat-v7库提供了相同的功能,但是被Google支持(并且主动更新)。 想要实现一个ActionBar活动必须:

  • 扩展AppCompatActivity
  • 使用Theme.AppCompat生物

为了得到一个使用这个库的ActionBar实例,使用了恰当命名的getSupportActionBar()方法。

操作栏的标题可以在AndroidManifest中,在这里:

 <activity . . . android:label="string resource" . . . </activity> 

android:label活动的用户可读标签。 当活动必须呈现给用户时,标签显示在屏幕上。 它通常与活动图标一起显示。 如果未设置此属性,则将使用为应用程序整体设置的标签(请参阅元素的标签属性)。 活动的标签 – 无论是在这里还是由元素设置 – 也是所有活动意图过滤器的默认标签(请参阅元素的标签属性)。 应将该标签设置为对字符串资源的引用,以便可以像用户界面中的其他字符串一样进行本地化。 但是,为了方便开发应用程序,也可以将其设置为原始字符串。

试试这个:

 android.support.v7.app.ActionBar ab = getSupportActionBar(); ab.setTitle("This is Title"); ab.setSubtitle("This is Subtitle"); 

还有另外一个选项,从Support Library V7中没有人评论过,是由ActionBarSupport实现的,这个ActionBar从Android 2.2到ActionBar是兼容的。
如果你改变你的ActionBar你可以在所有Android版本上使用getSupportActionBar().setTitle("")

不! 你必须在运行时做到这一点。

如果您想让应用向后兼容,那么只需检查设备API级别即可。 如果它高于11,那么你可以拨动ActionBar并设置字幕。

 if(Integer.valueOf(android.os.Build.VERSION.SDK) >= 11){ //set actionbar title } 
  <activity android:name=".yourActivity" android:label="@string/yourText" /> 

把这段代码放到你的android清单文件中,它应该把action bar的标题设置为你想要的!

尝试这个:

在strings.xml中添加你的标题和副标题…

 ActionBar ab = getActionBar(); ab.setTitle(getResources().getString(R.string.myTitle)); ab.setSubtitle(getResources().getString(R.string.mySubTitle)); 

对于活动,您可以使用这种方法在清单中指定副标题和标题。

表现:

 <activity android:name=".MyActivity" android:label="@string/my_title" android:description="@string/my_subtitle"> </activity> 

活动:

 try { ActivityInfo activityInfo = getPackageManager().getActivityInfo(getComponentName(), PackageManager.GET_META_DATA); //String title = activityInfo.loadLabel(getPackageManager()).toString(); int descriptionResId = activityInfo.descriptionRes; if (descriptionResId != 0) { toolbar.setSubtitle(Utilities.fromHtml(getString(descriptionResId))); } } catch(Exception e) { Log.e(LOG_TAG, "Could not get description/subtitle from manifest", e); } 

这样你只需要指定标题字符串一次,你就可以指定副标题。

您可以使用AndroidManifest.xml在操作栏中设置标题。 为activity添加标签

 <activity android:name=".YourActivity" android:label="Your Title" /> 

尝试这个

只要去你的清单文件。 而且您已经为清单文件中的每个活动定义了标签。

 <activity android:name=".Search_Video" android:label="@string/app_name" android:screenOrientation="portrait"> </activity> 

这里改变

机器人:标签= “@字符串/ your_title”

这在Kotlin中是微不足道的

supportActionBar?.title = getString(R.string.coolTitle)