在android嵌套的PreferenceScreen上显示/返回按钮?

lis*_*aro 13 java android android-actionbar

我有一个两级PreferenceScreen:

<PreferenceScreen>
general settings
   <PreferenceScreen android:key="adv_settings">
   more advanced settings
   </PreferenceScreen>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

我的问题是第二个屏幕没有自动显示操作栏上的后退/上移按钮.如何在adv_settings上显示向上按钮?

liu*_*eia 7

您可以通过编写要与应用程序主题一起使用的自定义ActionBar样式来添加箭头.

res/values-v11/styles.xml :(或将这些添加到现有的styles.xml中)

<?xml version="1.0" encoding="utf-8"?>
<resources>    
  <style name="MyTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
  </style>

  <style name="MyActionBar" parent="@android:style/Widget.Holo.ActionBar">
    <item name="android:displayOptions">showHome|homeAsUp|showTitle</item>
  </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

然后在AndroidManifest.xml中应用此主题:

<application android:theme="@style/MyTheme">
Run Code Online (Sandbox Code Playgroud)


注意:添加此箭头的明显方法应该是调用:

getActionBar().setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)

一旦第二个屏幕加载,但我认为有一个Android错误,其中getActionBar()总是返回第一层ActionBar对象,而不是当前可见的对象,因此动态设置箭头失败.

  • 它会添加箭头,但即使您在PreferenceActivity中定义了事件,也没有任何事情发生 (3认同)

mic*_*ico 0

如果该按钮没有自动出现,您可以像在这些链接上所做的那样手动添加它:

Android:如何制作自定义PreferenceScreen?

http://pastebin.com/334Eip35

该问题的第二个答案中有一个示例代码,其中的代码片段可能取自另一个pastebin位置。