独学で勉強初めてまだ一ヶ月程度なのですがプリファレンスの扱いがうまくいかず困っています。 とりあえずアンドロイドアプリのシューティングゲームを作りながら判らなかったら調べつつ進めているので、根本的に間違っているかもですが御教授頂ければと思います。 ゲームのステータスをいじる画面をviewクラスで作り保存できるようにと思ったのですが、アクティビティでしかプリファレンスを扱えず無理やりやろうとしてこうなってしまいました。 ------------------------- public class SettingActivity extends Activity { int speed; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this); //プリファレンスの準備 speed = pref.getInt("speed",1); //呼び出し 第二引数は初期値 LinearLayout l = new LinearLayout(this); l.setOrientation(LinearLayout.VERTICAL); setContentView(l); l.addView(new Setting(this)); } @Override protected void onPause() { SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this); //プリファレンスの準備 Setting set = new Setting(this); Editor date = pref.edit(); date.putInt("speed",set.getSpeed()); date.commit(); //保存 super.onPause(); } -------------------------------- public class Setting extends View { SettingActivity activity = (SettingActivity)this.getContext(); int speed = activity.speed; void setSpeed(int sp) { speed = sp; } int getSpeed() { return speed; } public void onDraw(Canvas c) { super.onDraw(c); if(画面の表示が変わったとき) speed = 表示の値に; setSpeed(speed); } ----------------------------- 色々調べた結果このような感じになったのですが、どうしても最初の画面に戻ったら元に戻ってしまいます。 どのようにすればうまくいきますでしょうか? よろしくお願いします。
↧