-1

ねえ、私は自分のアプリを作ろうとしています。私はすでにウェブで情報を検索しましたが、他の人が役立つと思った解決策を理解していませんでした. しかし、私には少し問題があります。アプリを閉じるときにアプリにブール値stopValueを保存させたいのですが、これを試してみると、アプリを閉じるときに値が保存されず、代わりに値がtrueに設定されます。

これを修正するにはどうすればよいですか?

ご協力いただきありがとうございます。

public class Main extends Activity{

Button bStart, bStop;
TextView tvDate, tvKm;
Spinner spinner1;
boolean stopValue;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    bStart = (Button) findViewById(R.id.bStart);
    tvDate = (TextView) findViewById(R.id.tvDate);
    tvKm = (TextView) findViewById(R.id.tvKm);
    spinner1 = (Spinner) findViewById(R.id.spinner1);

    boolean stopValue = false;
    SharedPreferences sp = getApplicationContext().getSharedPreferences("stopValue", 1);
    stopValue = sp.getBoolean("stop", false);

    stopValue = getIntent().getBooleanExtra("stop", stopValue);

    if(stopValue){
        bStart.setText("Start");
        bStart.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent start = new Intent("com.uniqueapps.runner.START");
                startActivity(start);
            }
        });
    }
    if(stopValue == false){
        bStart.setText("Stop");
        bStart.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent stop = new Intent("com.uniqueapps.runner.STOP");
                startActivity(stop);
            }
        });
    }
}

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();

    SharedPreferences sp = getApplicationContext().getSharedPreferences("stopValue", 1);
    Editor edit = sp.edit();
    edit.putBoolean("stop", true);
    edit.commit();
}
4

2 に答える 2

0

次のようにコミット後に super.onPause を呼び出します:-

@Override
protected void onPause() {
    SharedPreferences sp = getApplicationContext().getSharedPreferences("stopValue", 1);
     Editor edit = sp.edit();
     edit.putBoolean("stop", stopValue);
     edit.commit();
     super.onPause();


}
于 2013-09-24T18:33:22.710 に答える