プログラムでいくつかの設定画面を追加する PreferenceActivity を起動しました。だから私は自分の設定画面のリストを持っています。
例:
- トト
- ティティ
- タタ
だから私は繰り返して関数を呼び出します(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をクリックすると、totoの設定画面が開き、この画面に「削除」オプションがあります。削除をクリックすると、この設定画面が PreferenceActivity (前の画面) から削除されますが、まだ設定画面 toto にいます。
「削除」で前の画面に戻りたい。
finish()
アプリを終了するため、設定画面で toto を使用できません。戻るボタンをクリックすると、PreferenceActivity (前の画面) に戻り、toto の設定画面が削除されました (ヤタ、その機能は機能しました!)