两个SharedReference在java中不起作用
我尝试使用两个SharedReference,第一个有效,但第二个无效 这是我的Java代码两个SharedReference在java中不起作用,java,android,sharedpreferences,Java,Android,Sharedpreferences,我尝试使用两个SharedReference,第一个有效,但第二个无效 这是我的Java代码 public class JogoActivity extends AppCompatActivity implements View.OnClickListener { //OTHERS VARIABLES public TextView txtViewResult,txtCoins, txtTentativas; private static final String PREF_NAME =
public class JogoActivity extends AppCompatActivity implements View.OnClickListener {
//OTHERS VARIABLES
public TextView txtViewResult,txtCoins, txtTentativas;
private static final String PREF_NAME = "JogoActivityPreferences";
int resulFinalCache,coinsFinalCache;
int count1, count2 ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Configuration config = getResources().getConfiguration();
//methods...
//MY PROBLEMS START HERE
txtCoins = (TextView) findViewById(R.id.txtCoins);
txtViewResult = (TextView) findViewById(R.id.textViewResultado);
SharedPreferences sp1 = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
count1 = sp1.getInt("count1", 0);
txtViewResult.setText(String.valueOf(formatter.format(count1).toString()));//THIS IS WORKING
SharedPreferences sp2 = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
count2 = sp2.getInt("count2", 0);
txtCoins.setText(String.valueOf(formatter.format(count2).toString()));////THIS ISN'T
}
//Creating methods...
@Override
protected void onStop(){
super.onStop();
SharedPreferences sp1 = getSharedPreferences(PREF_NAME, MODE_PRIVATE);//THIS IS WORKING
count1 = sp1.getInt("count1", 0);
SharedPreferences.Editor editor = sp1.edit();
editor.putInt("count1", resulFinalCache);
editor.commit();
SharedPreferences sp2 = getSharedPreferences(PREF_NAME, MODE_PRIVATE);//THIS ISN'T
count2 = sp2.getInt("count2", 0);
editor = sp1.edit();
editor.putInt("count2", coinsFinalCache);
editor.commit();
}
@Override
public void onDestroy() {
super.onDestroy();
SharedPreferences sp1= getSharedPreferences(PREF_NAME, MODE_PRIVATE);//THIS IS WORKING
SharedPreferences.Editor editor = sp1.edit();
editor.putInt("count1", resulFinalCache);
editor.commit();
SharedPreferences sp2= getSharedPreferences(PREF_NAME, MODE_PRIVATE);//THIS ISN'T
editor = sp2.edit();
editor.putInt("count2", coinsFinalCache);
editor.commit();
}
}
每次我启动应用程序时,我使用,我关闭应用程序并再次打开,TextView txtViewResult工作正常,但txtCoins没有
我试着只使用getPreferences而不使用GetSharedReferences,但这也不管用
我尝试创建其他编辑器,但也不起作用
我做错什么了吗
多谢各位 嗯,你的解决办法是
SharedPreferences sp1_2 = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
count1 = sp1_2.getInt("count1", 0);
SharedPreferences.Editor editor = sp1_2.edit();
editor.putInt("count1", resulFinalCache);
editor.commit();
count2 = sp1_2.getInt("count2", 0);
editor = sp1_2.edit();
editor.putInt("count2", coinsFinalCache);
editor.commit();
//now both will work
实际上,绑定这些方法。您的解决方案是
SharedPreferences sp1_2 = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
count1 = sp1_2.getInt("count1", 0);
SharedPreferences.Editor editor = sp1_2.edit();
editor.putInt("count1", resulFinalCache);
editor.commit();
count2 = sp1_2.getInt("count2", 0);
editor = sp1_2.edit();
editor.putInt("count2", coinsFinalCache);
editor.commit();
//now both will work
实际上,绑定方法通常我可以建议您简单地使用 保存:
PreferenceManager.getDefaultSharedPreferences(this).edit().putInt("name", 1).apply();
阅读:
PreferenceManager.getDefaultSharedPreferences(this).getInt("name", 0);
享受吧 一般来说,我可以建议您简单地使用 保存:
PreferenceManager.getDefaultSharedPreferences(this).edit().putInt("name", 1).apply();
阅读:
PreferenceManager.getDefaultSharedPreferences(this).getInt("name", 0);
享受吧 无需调用GetSharedReferences两次 只要叫它一次,它就会工作得很好 你的顶头上司是
SharedPreferences sp1 = getSharedPreferences(PREF_NAME, MODE_PRIVATE);//THIS IS WORKING
count1 = sp1.getInt("count1", 0);
SharedPreferences.Editor editor = sp1.edit();
editor.putInt("count1", resulFinalCache);
count2 = sp1.getInt("count2", 0);
editor.putInt("count2", coinsFinalCache);
editor.commit();
无需调用GetSharedReferences两次 只要叫它一次,它就会工作得很好 你的顶头上司是
SharedPreferences sp1 = getSharedPreferences(PREF_NAME, MODE_PRIVATE);//THIS IS WORKING
count1 = sp1.getInt("count1", 0);
SharedPreferences.Editor editor = sp1.edit();
editor.putInt("count1", resulFinalCache);
count2 = sp1.getInt("count2", 0);
editor.putInt("count2", coinsFinalCache);
editor.commit();
获取它们时不要使用相同的名称! 而不是
SharedPreferences sp1 = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
SharedPreferences sp2 = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
使用两个不同的名称,如下所示:
SharedPreferences sp1 = getSharedPreferences(PREF_NAME1, MODE_PRIVATE);
SharedPreferences sp2 = getSharedPreferences(PREF_NAME2, MODE_PRIVATE);
此外,您不需要两个不同的共享首选项。只需使用一个,并将这两个值与不同的键放在一起。获取它们时不要使用相同的名称! 而不是
SharedPreferences sp1 = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
SharedPreferences sp2 = getSharedPreferences(PREF_NAME, MODE_PRIVATE);
使用两个不同的名称,如下所示:
SharedPreferences sp1 = getSharedPreferences(PREF_NAME1, MODE_PRIVATE);
SharedPreferences sp2 = getSharedPreferences(PREF_NAME2, MODE_PRIVATE);
此外,您不需要两个不同的共享首选项。只需使用一个,并将这两个值与不同的键放在一起。不需要创建第二个SharedReferences引用变量,请确保您能够在xml文件中保存count2标记。我认为这只是一篇愚蠢的文章。我想他不是在胡闹就是超兴奋。谁使用2个SharedRefers来表示2个值:这里不需要创建SharedReferences的第二个引用变量,请确保您能够在xml文件中保存count2标记,我认为这只是一篇愚蠢的文章。我想他不是在胡闹就是超兴奋。谁将2个SharedPref用于2个值:D