相关疑难解决方法(0)

嵌套的preferences.xml

是否有可能将一个包含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)

android nested include preferences android-preferences

32
推荐指数
3
解决办法
6654
查看次数

操作栏主页按钮无法使用嵌套的PreferenceScreen

我找到了一种解决方法,可以在嵌套的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

25
推荐指数
1
解决办法
6590
查看次数

更改PreferenceScreen时,请保持操作栏显示

我正在尝试在我的首选项屏幕中显示操作栏.为此,我在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也应该显示标题......但事实并非如此

    // 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);
    }
Run Code Online (Sandbox Code Playgroud)

android preferenceactivity android-actionbar preferencefragment

18
推荐指数
2
解决办法
7362
查看次数

在PreferenceActivity和嵌套首选项上设置setHomeButtonEnabled

我有偏好屏幕扩展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

6
推荐指数
1
解决办法
9521
查看次数