I want to launch a new preference screen from my main preference screen.

My main preference.xml is this:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android";>
    <PreferenceScreen 
        android:title="@string/pref_settings_title" >
        <CheckBoxPreference
                android:key="settingsMute"
                android:title="@string/pref_muteAudio"
                android:summary="@string/pref_muteAudio_summ"
                android:defaultValue="false" />
        <CheckBoxPreference
                android:key="settingsObjectFilter"
                android:title="@string/pref_enableObjectFilters"
                android:summary="@string/pref_enableObjectFilters_summ"
                android:defaultValue="false" />
        <CheckBoxPreference
                android:key="settingsNoStateFilter"
                android:title="@string/pref_filterObjectsNoState"
                android:summary="@string/pref_filterObjectsNoState_summ"
                android:defaultValue="false" />
        <CheckBoxPreference
                android:key="settingsEnableService"
                android:title="@string/pref_enableService"
                android:summary="@string/pref_enableService_summ"
                android:defaultValue="false" />
    </PreferenceScreen>
    <PreferenceScreen 
        
android:fragment="com.example.android.misterhouse.activity.SettingsActivity$HostsFragment"
 
        android:title="@string/pref_hosts_title" 
        android:summary="@string/pref_hosts_title" > 
    </PreferenceScreen>
    <EditTextPreference
        android:title="@string/pref_version_title"
        android:summary="@string/about_current" 
        android:selectable="false" />
</PreferenceScreen>

When selecting the "pref_hosts_title", I want the 
SettingsActivity$HostsFragment to display.
This new fragment does display, however, it doesn't replace the original 
fragment, it 
instead overlays the original fragment.  The two fragments display at the same 
time.

What might I be doing wrong?

The activity which uses these XML are as follows:

public class SettingsActivity extends PreferenceActivity  {


        public static class SettingsFragment extends PreferenceFragment {       

                public static final String TAG = "SettingsFragment";

                @Override
                public void onCreate(Bundle savedInstanceState) {
                        Log.v(TAG,"onCreate");
                        super.onCreate(savedInstanceState);

                        // Load the preferences from an XML resource
                        addPreferencesFromResource(R.xml.preferences);
                        getPreferenceManager( 
).setSharedPreferencesMode(MODE_MULTI_PROCESS);
                }
                
        }
        
        public static class HostsFragment extends PreferenceFragment {  

                public static final String TAG = "HostsFragment";

                @Override
                public void onCreate(Bundle savedInstanceState) {
                        Log.v(TAG,"onCreate");
                        super.onCreate(savedInstanceState);

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

        }
        
    
    @Override
        protected void onCreate(Bundle savedInstanceState) {
        Log.v(TAG,"onCreate");
                super.onCreate(savedInstanceState);

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

                // Display the fragment as the main content.
                if (android.os.Build.VERSION.SDK_INT >= 11) {
                        Log.v(TAG,"Building SettingsFragment");
                        getFragmentManager().beginTransaction()
                        .replace(android.R.id.content, new SettingsFragment())
                        .commit();
                }
        }

}

Any advice appreciated.

Regards,

Jim

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to