2

これは私のコードです:

package com.example.sharedprefs;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {
    int i = 0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


    }

    public void doThis (View view){
        i++;
        SharedPreferences sharedPref = getSharedPreferences("FileName",MODE_PRIVATE);
        SharedPreferences.Editor prefEditor = sharedPref.edit();
        prefEditor.putInt("userChoice",i);
        prefEditor.commit();
        int number = sharedPref.getInt("userChoice", 0);
        Toast.makeText(getApplicationContext(), number + "" , Toast.LENGTH_LONG).show();
        this.finish();

    }

}

アプリが実行され、再度実行したとき。私はいつもトーストとして「1」を受け取ります。1と2と3などを取得しようとしています。何か案は?私はそれがプログラムではないことを知っています、それはこの時点で「プログラマー」です。前もって感謝します

4

1 に答える 1

2

最初のコメントで与えられた答え; SharedPreferences論理エラー

次のコードを入力する必要があります

SharedPreferences sharedPref = getSharedPreferences("FileName",MODE_PRIVATE);
i = sharedPref.getInt("userChoice", 0); 

アクティビティのonCreate()-methodで。

コードでは、このアクティビティを開始するたびにiは0になります。

于 2012-10-21T08:01:38.570 に答える