Как получить заголовок / заголовок Android PreferenceFragment для отображения на правой панели? - PullRequest
2 голосов
/ 08 февраля 2012

Я создаю PreferenceActivity для приложения для планшета (Android 3.0+) с использованием PreferenceFragments. Цель состоит в том, чтобы иметь двухпанельный макет, отображающий настройки так же, как отображаются системные настройки.

Проблема, с которой я столкнулся, заключается в том, что я не могу, по всей видимости, получить заголовок текущего выбранного PreferenceFragment для отображения над ListView PreferenceFragment на правой панели. Вот пример того, что я пытаюсь сделать (пытаясь отобразить содержимое в красном поле.)

enter image description here Вот мой файл preference_headers.xml:

<?xml version="1.0" encoding="utf-8"?>
<preference-headers xmlns:android="http://schemas.android.com/apk/res/android">
    <header android:fragment="com.mycompany.mobile.preferences.MyPreferencesActivityHC$GeneralSettingsPreferenceFragment"
            android:title="General Settings">
    </header>
    <header android:fragment="com.mycompany.mobile.preferences.MyPreferencesActivityHC$PhotoOptionsPreferenceFragment"
            android:title="Photo Settings"
            android:summary="Testing photo settings">
    </header>
</preference-headers>

и вот код для MyPreferencesActivity.java

package com.mycompany.mobile.preferences;

import java.util.List;

import android.content.Intent;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;

import com.mycompany.mobile.R;

public class MyPreferencesActivityHC extends PreferenceActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setTitle(R.string.taskCaptionSettings);
    }

    @Override
    public void onBuildHeaders(List<Header> target) {
        loadHeadersFromResource(R.xml.preference_headers, target);
    }

    public static class GeneralSettingsPreferenceFragment extends PreferenceFragment {

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.general_settings_preferences);
        }
    }

    public static class PhotoOptionsPreferenceFragment extends PreferenceFragment {

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.photo_options_preferences);
        }
    }
}

1 Ответ

1 голос
/ 09 февраля 2012

То, что вы здесь показали, вроде бы хорошо, но это еще не все. Посмотрите на пример Device Admin с кодом здесь Я использую ту же технику в своем приложении, и она прекрасно работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...