0

共有設定に問題があり、機能していません。

私は非常に長い間これに苦労してきましたが、なぜこれがうまくいかないのかとてもイライラしています.

Load メソッドを Oncreate と Onresume メソッドに入れようとしましたが、どれも機能しませんでした。

保存したい:

ブール値 = stopValue、これはアプリを初めて使用するときは false である必要があり、将来的には最後に保存されたものからロードする必要があります。別のクラスでボタンを使用するとブール値が変わるため、getIntent().getBooleanExtra(); があります。

日付と呼ばれる文字列。

Int、startkm。

これらは保存されるデータです。

御時間ありがとうございます。

しかし、これが私の Main クラスのコードです。

public class Main extends Activity{

Button bStart, bStop;
TextView tvView;
Spinner spinner1;
boolean stopValue;
int startkilometer;
String date;
SharedPreferences prefs;



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

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







    date = getIntent().getStringExtra("datoen");
    startkilometer = getIntent().getIntExtra("startkm", startkilometer);
    stopValue = getIntent().getBooleanExtra("stopper", stopValue);


    if(stopValue == false){
        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){
        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");
                stop.putExtra("startkm", startkilometer);
                stop.putExtra("datoen", date);
                startActivity(stop);
            }
        });
    }

    KilometerSQL info = new KilometerSQL(this);
    info.open();
    String data = info.getData();
    info.close();
    tvView.setText(data);

    }




@Override
protected void onResume() {
    // TODO Auto-generated method stub

super.onResume();       

prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

prefs.getBoolean("stopper", false);
prefs.getInt("startkm", startkilometer);
prefs.getString("datoen", date);

}

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

    Editor edit = prefs.edit();
    edit.putBoolean("stopper", stopValue);
    edit.putInt("startkm", startkilometer);
    edit.putString("datoen", date);
    edit.commit();

    super.onPause();
}
4

2 に答える 2

1

すべてのメソッドで prefs 変数を初期化してみてください。

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
Editor edit = prefs.edit();
    edit.putBoolean("stopper", stopValue);
    edit.putInt("startkm", startkilometer);
    edit.putString("datoen", date);
    edit.commit();

次の行は役に立ちません。値は取られません。あなたはどのように価値観を持っていますか?

prefs.getBoolean("stopper", false);
prefs.getInt("startkm", startkilometer);
prefs.getString("datoen", date);
于 2013-09-30T19:55:10.787 に答える