]> cvs.zerfleddert.de Git - FreeShisen/blobdiff - src/de/cwde/freeshisen/HighscoreActivity.java
null?
[FreeShisen] / src / de / cwde / freeshisen / HighscoreActivity.java
index 70d5f3dc6b1b704196a8fc9b4faa9dde3629b978..596973765d64ac5b661e31cd2aca6756ea310cb9 100644 (file)
@@ -8,15 +8,44 @@ import android.app.Activity;
 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");
@@ -44,35 +73,31 @@ public class HighscoreActivity extends Activity {
 
                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();
-                                       }
-                               });
-               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 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, null);
 
                AlertDialog dialog = builder.create();
                dialog.show();
+               updateTextViews();
        }
 }
Impressum, Datenschutz