4

I use a PreferenceActivity with encapsulated preference screens.

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    android:key="prefs" >

    <PreferenceScreen android:title="@string/pref_user_1" >

        some text preference
    </PreferenceScreen>
    <PreferenceScreen android:title="@string/pref_user_2"  >
        some prefs

        <PreferenceScreen android:title="@string/pref_user_2_1" >
            some prefs
        </PreferenceScreen>
    </PreferenceScreen>

</PreferenceScreen>

my inherited preferenceActivity class has the folowing onCreate method

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Display the fragment as the main content.
        getFragmentManager().beginTransaction()
                .replace(android.R.id.content, new PrefsFragment()).commit();
    }

and has an inner class

public static class PrefsFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener {

    public PrefsFragment() {
        super();
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

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



...
}

in the first screen I get the correct icon in the action bar (I call it Action Bar even if I haven't the <) but I would like to change the icon in the following screen.

I have tried getActivity().getActionBar().setIcon(R.drawable.ic_act); in the inner class and also in the preferenceActivity, but it doesn't change anything.

Does someone know how to do it, if possible?

BenMorel
  • 34,448
  • 50
  • 182
  • 322

0 Answers0