Я использую библиотеку Crouton для отображения предупреждающих сообщений пользователю. В этом случае я хочу отобразить на определенном экране предпочтений. Я написал следующий код в своем PreferenceActivity
Дисплей crouton in PreferenceScreen
Однако, 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;
}