import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.SharedPreferences;
+import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
-public class HighscoreActivity extends Activity {
+public class HighscoreActivity extends Activity implements
+OnSharedPreferenceChangeListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.highscore);
- // now fill the values, argh...
- SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
+ updateTextViews();
+
+ PreferenceManager.getDefaultSharedPreferences(this)
+ .registerOnSharedPreferenceChangeListener(this);
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ PreferenceManager.getDefaultSharedPreferences(this)
+ .registerOnSharedPreferenceChangeListener(this);
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ PreferenceManager.getDefaultSharedPreferences(this)
+ .unregisterOnSharedPreferenceChangeListener(this);
+ }
+
+ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
+ String key) {
+ updateTextViews();
+ }
+
+ private void updateTextViews() {
+ // argh...
+ SharedPreferences sp = PreferenceManager
+ .getDefaultSharedPreferences(this);
fillTextView(sp, R.id.textViewHL1, "hiscore_HL1");
fillTextView(sp, R.id.textViewHL2, "hiscore_HL2");
fillTextView(sp, R.id.textViewHM1, "hiscore_HM1");
builder.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- // User clicked OK button - delete hiscores
- SharedPreferences sp = PreferenceManager
- .getDefaultSharedPreferences(
- ((AlertDialog) dialog).getContext());
- SharedPreferences.Editor editor = sp.edit();
- editor.remove("hiscore_HL1");
- editor.remove("hiscore_HL2");
- editor.remove("hiscore_HM1");
- editor.remove("hiscore_HM2");
- editor.remove("hiscore_HS1");
- editor.remove("hiscore_HS2");
- editor.remove("hiscore_EL1");
- editor.remove("hiscore_EL2");
- editor.remove("hiscore_EM1");
- editor.remove("hiscore_EM2");
- editor.remove("hiscore_ES1");
- editor.remove("hiscore_ES2");
- editor.commit();
- }
- });
+ public void onClick(DialogInterface dialog, int id) {
+ // User clicked OK button - delete hiscores
+ SharedPreferences sp = PreferenceManager
+ .getDefaultSharedPreferences(((AlertDialog) dialog)
+ .getContext());
+ SharedPreferences.Editor editor = sp.edit();
+ editor.remove("hiscore_HL1");
+ editor.remove("hiscore_HL2");
+ editor.remove("hiscore_HM1");
+ editor.remove("hiscore_HM2");
+ editor.remove("hiscore_HS1");
+ editor.remove("hiscore_HS2");
+ editor.remove("hiscore_EL1");
+ editor.remove("hiscore_EL2");
+ editor.remove("hiscore_EM1");
+ editor.remove("hiscore_EM2");
+ editor.remove("hiscore_ES1");
+ editor.remove("hiscore_ES2");
+ editor.commit();
+ }
+ });
builder.setNegativeButton(android.R.string.cancel,
new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- // User cancelled the dialog - nothing to do
- }
- });
+ public void onClick(DialogInterface dialog, int id) {
+ // User cancelled the dialog - nothing to do
+ }
+ });
AlertDialog dialog = builder.create();
dialog.show();
+ updateTextViews();
}
}