У меня есть PreferenceActivity, где я добавляю некоторые экраны предпочтений программным способом. Поэтому у меня есть список с моими экранами предпочтений.
Пример:
- Toto
- Тити
- Tatali >
Итак, я повторяю и вызываю функцию (Board
- это настраиваемый объект):
private PreferenceScreen CreatePreferenceScreen(Board b) {
PreferenceScreen p = getPreferenceManager().createPreferenceScreen(this);
p.setPersistent(true);
p.setKey("preferenceScreen_" + b.getId());
PreferenceCategory general = new PreferenceCategory(this);
general.setTitle("General");
p.addPreference(general);
Preference delete = new Preference(this);
delete.setTitle("delete");
final PreferenceScreen pFinal = p;
delete.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference arg0) {
String delId = board.getId();
PreferenceCategory themes = (PreferenceCategory) findPreference("themes");
PreferenceScreen screen =(PreferenceScreen)findPreference("preferenceScreen_" + delId);
themes.removePreference(screen);
/*GO BACK TO PREFERENCEACTIVITY HERE OR KILL THIS SCREEN*/
return true;
}
});
general.addPreference(delete);
return p;
}
Если я нажму на то, он откроет экран предпочтений toto, и на этом экране у меня есть опция "Удалить" . Если я нажму "Удалить" , он удалит этот экран предпочтений из PreferenceActivity (предыдущий экран), но я все еще на экране предпочтений.
Я хотел бы вернуться к предыдущему экрану, когда я использую "Удалить" .
Я не могу использовать finish()
на моем экране предпочтений, потому что он выходит из приложения.
Если я нажму кнопку "Назад", я вернусь к PreferenceActivity (предыдущий экран), и экран настроек toto был удален (yata, эта функция сработала!)