是否有可能将一个包含preferences.xml到另一个中,就像它可以用<include />标签进行布局一样?
让我们说:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceScreen
android:title="@string/pref_group_title_visual">
<include
preferences_filename="xml/pref_visual"/>
</PreferenceScreen>
...
Run Code Online (Sandbox Code Playgroud) 我找到了一种解决方法,可以在嵌套的PreferenceScreen上实际启用ActionBar主页按钮...但是它不会在我的PreferenceActivity中调用OnOptionsItemSelected.有人知道在嵌套的PreferenceScreen上实际使用主页按钮的方法吗?
这里修改第35篇:
http://code.google.com/p/android/issues/detail?id=4611
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference)
{
super.onPreferenceTreeClick(preferenceScreen, preference);
if (preference!=null)
if (preference instanceof PreferenceScreen)
if (((PreferenceScreen)preference).getDialog()!=null)
((PreferenceScreen)preference).getDialog().getActionBar().setHomeButtonEnabled(true);
return false;
}
Run Code Online (Sandbox Code Playgroud) java android preferenceactivity sharedpreferences android-actionbar
我正在尝试在我的首选项屏幕中显示操作栏.为此,我在SettingActivity中添加了以下代码
public class PreferencesActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.preferences_activity);
getFragmentManager().beginTransaction()
.replace(R.id.container, new PreferencesFragment()).commit();
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_HOME_AS_UP);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
}
Run Code Online (Sandbox Code Playgroud)
然后是我在PreferencesFragment中的其余代码.这样可以正常工作,但只要按下PreferenceScreen首选项,操作栏就会隐藏.如果我回到偏好主屏幕,我可以再次看到它.知道如何显示操作栏(并使用PreferenceScreen标签更新)吗?
编辑:查看PreferenceScreen代码,当单击PreferenceScreen时,它看起来像是一个全屏对话框.因为我的偏好有标题,所以Dialog也应该显示标题......但事实并非如此
Run Code Online (Sandbox Code Playgroud)// Set the title bar if title is available, else no title bar final CharSequence title = getTitle(); Dialog dialog = mDialog = new Dialog(context, context.getThemeResId()); if (TextUtils.isEmpty(title)) { dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); } else { dialog.setTitle(title); }
android preferenceactivity android-actionbar preferencefragment
我有偏好屏幕扩展PreferenceActivity.对于目标OS 4.0.3,我想<在操作栏上添加图标,所以我这样做了onCreate().
ActionBar actionBar = getActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)
有效.<已添加到应用程序图标的左侧.但是当我点击进入下一级别的项目(更多细节屏幕)时,<将不会显示.回到顶层,<再次出现.
我从未想过嵌套偏好的机制,因为聪明的PreferenceActivity隐藏它.现在我的问题是,为什么不PreferenceActivity显示<嵌套首选项?
我不想争辩说我不需要添加<到首选项屏幕.(即使谷歌的一些应用程序添加,有些也没有,所以我认为没有可靠的规则.)
如果有一个简单的解决方案,我想解决这个问题.
android preferenceactivity android-4.0-ice-cream-sandwich android-actionbar android-homebutton