Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在平板电脑上的首选项活动中选择默认标题?_Android_Header_Preferenceactivity - Fatal编程技术网

Android 如何在平板电脑上的首选项活动中选择默认标题?

Android 如何在平板电脑上的首选项活动中选择默认标题?,android,header,preferenceactivity,Android,Header,Preferenceactivity,我正在使用与平板电脑完全兼容的首选项活动 为此,我将按照谷歌的建议在这方面工作 @覆盖 public void onBuildHeaders(列表目标){ loadHeadersFromResource(R.xml.preference_头,目标); } 我的问题是,我希望能够在启动活动时选择默认标题 例如,我有几个标题 一般设置 用户界面设置 网络设置 根据我参加的活动,我想显示正确的设置 有没有办法做到这一点?您可以使用PreferenceActivity.Header类动态创建Pre

我正在使用与平板电脑完全兼容的
首选项活动

为此,我将按照谷歌的建议在这方面工作

@覆盖
public void onBuildHeaders(列表目标){
loadHeadersFromResource(R.xml.preference_头,目标);
}
我的问题是,我希望能够在启动活动时选择默认标题

例如,我有几个标题

  • 一般设置
  • 用户界面设置
  • 网络设置
根据我参加的活动,我想显示正确的设置


有没有办法做到这一点?

您可以使用PreferenceActivity.Header类动态创建PreferenceHeader

在创建调用PreferenceActivity的意图时,可以添加额外的字符串“extra\u SHOW\u FRAGMENT”来指定最初应显示的片段。传递要选择的片段的名称

例如,如果要选择“常规设置”标题(及其内容),可以使用以下代码:

final Intent intent = new Intent(this, ExtendedPreferenceActivity.class); // Assume we call it from an other activty
intent.putExtra(EXTRA_SHOW_FRAGMENT, GeneralSettingsFragment.class.getName());
startActivity(intent);
有关这方面的更多信息,请参见:


在提交给谷歌的一份问题报告中,有报道称,对于Android版本3.0,也不会自动选择正确的标题。有关问题报告及其解决方法,请参见此处:。

默认情况下,您可以使用片段:

以下是我所做的:

public class PreferencesActivity extends SherlockPreferenceActivity {

/** Variables **/


/** Constants **/
private static final String CLASSTAG = PreferencesActivity.class.getSimpleName();


/** Class Methods **/
@Override
public void onCreate(Bundle savedInstanceState) {
    Log.v(CLASSTAG, "onCreate");
    super.onCreate(savedInstanceState);
    initializeUI();
}

@Override
public Intent getIntent() {
    Log.v(CLASSTAG, "getIntent");
    final Intent modIntent = new Intent(super.getIntent());
    modIntent.putExtra(EXTRA_SHOW_FRAGMENT, SettingsFragment.class.getName());
    modIntent.putExtra(EXTRA_NO_HEADERS, true);
    return modIntent;
}


/** Private Functions **/
private void initializeUI() {
    getSupportActionBar().hide();
}


/** Classes **/
public static class SettingsFragment extends PreferenceFragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Load the preferences from an XML resource
        addPreferencesFromResource(R.xml.settings_preference);  
        initializeUI();
    }

    private void initializeUI() { }
}


}
和默认xml(与之前的蜂巢版本相同…):



看完这份文件后,我不明白。。你能再具体一点吗?谢谢我未经测试就接受了它,并将在下周尝试该代码,但似乎是正确的。非常感谢。我找这个花了整整一个下午。。非常感谢。
public class PreferencesActivity extends SherlockPreferenceActivity {

/** Variables **/


/** Constants **/
private static final String CLASSTAG = PreferencesActivity.class.getSimpleName();


/** Class Methods **/
@Override
public void onCreate(Bundle savedInstanceState) {
    Log.v(CLASSTAG, "onCreate");
    super.onCreate(savedInstanceState);
    initializeUI();
}

@Override
public Intent getIntent() {
    Log.v(CLASSTAG, "getIntent");
    final Intent modIntent = new Intent(super.getIntent());
    modIntent.putExtra(EXTRA_SHOW_FRAGMENT, SettingsFragment.class.getName());
    modIntent.putExtra(EXTRA_NO_HEADERS, true);
    return modIntent;
}


/** Private Functions **/
private void initializeUI() {
    getSupportActionBar().hide();
}


/** Classes **/
public static class SettingsFragment extends PreferenceFragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Load the preferences from an XML resource
        addPreferencesFromResource(R.xml.settings_preference);  
        initializeUI();
    }

    private void initializeUI() { }
}


}
<PreferenceScreen 
    xmlns:android="http://schemas.android.com/apk/res/android">

    <PreferenceCategory 
        android:title="@string/preferences_category_1">

        <com.taptime.ui.preferences.ClickPreference
            android:key="@string/preferences_conditions_key"
            android:title="@string/preferences_conditions_title"/>

    </PreferenceCategory> 

    <PreferenceCategory 
        android:title="@string/preferences_category_2">

        <com.newin.android.ui.widget.ClickPreference
            android:key="@string/preferences_logout_key"
            android:title="@string/preferences_logout_title"
            android:summary="@string/preferences_logout_summary"/>

    </PreferenceCategory> 

</PreferenceScreen>