Отображение сухарика в PreferenceScreen

Я использую библиотеку Crouton для отображения предупреждений пользователю. В этом сценарии я хочу отобразить на определенном экране предпочтений. Я написал следующий код в моем PreferenceActivity

Однако Crouton отображается только на первом экране предпочтений, а не на дочернем экране предпочтений, где Crouton фактически запускается. Любые идеи, чтобы решить эту проблему?

       findPreference(key.key).setOnPreferenceChangeListener(new OnPreferenceChangeListener()
        {

            @Override
            public boolean onPreferenceChange(Preference preference, Object newValue)
            {
                int count = 0;
                for (ANALYTICS_KEYS key : ANALYTICS_KEYS.values())
                {
                    if (appPreferences.getAnalyticProperty(key))
                    {
                        count++;

                    }
                }

                Crouton crouton = null;
                if (count > 5 && count < 7)
                {
                    Style.Builder style = new Builder(Style.INFO).setConfiguration(new Configuration.Builder().setDuration(Configuration.DURATION_INFINITE).build());

                    crouton = Crouton.makeText(DashAnalyticsPreferenceActivity.this, "More than 5 attributes might not be visible", style.build());

                }
                else if (count > 7)
                {
                    crouton = Crouton.makeText(DashAnalyticsPreferenceActivity.this, "More than 7 attributes are not allowed. Only first 7 will be considered", Style.ALERT);
                }
                else
                    Crouton.cancelAllCroutons();

                if (crouton != null)
                {
                    crouton.show();
                    crouton.setOnClickListener(new View.OnClickListener()
                    {
                        @Override
                        public void onClick(View v)
                        {

                            //Crouton.hide(crouton);
                        }
                    });
                }

                return true;
            }

1 ответ

Решение

Crouton привязывается к представлению Activites. Таким образом, он будет отображаться только в Activity это было передано, чтобы создать его.

Если вы хотите отобразить Crouton в другой Activity вам придется пройти соответствующий Activity к этому.

Другие вопросы по тегам