2012-10-16 136 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。