2012-10-16 135 views
2

這是我的代碼:SharedPreferences邏輯錯誤

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等等。有任何想法嗎?我知道這不是程序,而是現在的「程序員」。在此先感謝

+5

put'SharedPreferences sharedPref = getSharedPreferences(「FileName」,MODE_PRIVATE); i = sharedPref.getInt(「userChoice」,0);'onCreate of Activity ... i每次啓動本次活動時爲0 – Selvin

+1

是的,那工作。如果您願意,可以將其作爲答案發布,以便我可以對其進行標記。 – EGHDK

回答

2

在第一條評論中給出的答案; SharedPreferences Logical Error

你應該把下面的代碼

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

在你的活動中onCreate() - 方法。

在您的代碼中,每次啓動此活動時i都是0。