我在保存Android的SharedPreferences时遇到了一些麻烦,这确实很简单。我只想拥有一个点击计数器,并使用SharedPrefs保存点击次数,这是代码:

    public class MainActivity extends Activity {
public int veces;
SharedPreferences prefs;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
     prefs =  getSharedPreferences("MisPrefs", MODE_PRIVATE);

      veces = prefs.getInt("nroVeces", 0);
      //EditText TextOut = (EditText) findViewById(R.id.Texty);
     // TextOut.setText("El boton ha sido tocado "+veces+"veces");

    setContentView(R.layout.activity_main);

}

public void Presionado(View view){
    EditText TextOut = (EditText) findViewById(R.id.Texty);
    SharedPreferences.Editor editor = prefs.edit();

    veces = prefs.getInt("NroVeces", 0);
    veces ++;
    TextOut.setText("El boton ha sido tocado "+veces+" veces.");
    editor.putInt("nroVeces", veces);
    editor.commit();


}


我的计数器(veces)冻结为1,这就是问题所在。

最佳答案

问题是,您在阅读和书写时给计数器命名不同:

veces = prefs.getInt("NroVeces", 0);
// your code in between
editor.putInt("NroVeces", veces);


这应该解决它。

10-08 03:15