PreferenceScreen的不同徽标

时间:2013-12-05 16:14:57

标签: android

我的应用程序有两个PreferenceActivity,并使用不同的图标和徽标,如下所示:

  <activity android:name=".dashanalytics.DashAnalyticsPreferenceActivity" android:icon="@drawable/ic_dashanalytics" android:logo="@drawable/ic_dashanalytics" >
        </activity>
        <activity android:name=".dashadsense.DashAdSensePreferenceActivity" android:logo="@drawable/ic_dashadsense"  android:icon="@drawable/ic_dashadsense" >
        </activity>

问题是嵌套的PreferenceScreen不尊重为这些设置定义的徽标设置。它们继承了application标记中定义的徽标设置。

这会导致嵌套的首选项屏幕显示相同的图标。有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您可以使用此功能手动设置首选项屏幕窗口的主页图标。

// Set the preference screen's home icon when the preference is clicked
final PreferenceScreen preferenceScreen = (PreferenceScreen) findPreference("my_screen");
preferenceScreen.setOnPreferenceClickListener(
        new Preference.OnPreferenceClickListener() {
            @Override
            public boolean onPreferenceClick(Preference preference) {
                Window window = preferenceScreen.getDialog().getWindow();
                ImageView view = (ImageView) window.findViewById(android.R.id.home);
                if (view != null) {
                    view.setImageResource(R.drawable.ic_my_icon);
                }
                return false;
            }
        });