【问题标题】:can't called the saved SharedPreferences value无法调用保存的 SharedPreferences 值
【发布时间】:2021-09-25 08:26:04
【问题描述】:

我有一个问题,当我调用保存的共享 sharedPreferences 整数值时 在第二个活动中它的返回值 0 !!!

这是第一个活动中的代码(保存)

public void startClick(View view) {
   Toast.makeText(this,String.valueOf(l),Toast.LENGTH_SHORT).show();
   
    
    if (language == 1 && isCountrySelected==true )   {
        //Saving Value
        SharedPreferences sharedPreferences = getSharedPreferences("indemnity_calculation_kuwait",MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putInt("languageValue", l).apply();
        editor.commit();

        startActivity(intentKuwaitAr);
        finish();



       // openArabicActivity();
       // finish();
    }

在第二个活动“闪屏”中,我试图调用保存的值

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash_screen);
    intentKuwaitEn = new Intent(this ,MainActivity.class) ;
    intentKuwaitAr = new Intent(this,ArabicActivity.class) ;
    intentMenu = new Intent(this,MenuActivity.class) ;

  //  Toast.makeText(this,"l="+String.valueOf(savedValue),Toast.LENGTH_SHORT).show();

    SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
   int savedValue = sharedPreferences.getInt("languageValue", 0);
    Toast.makeText(this,"l="+String.valueOf(savedValue),Toast.LENGTH_SHORT).show();


    Thread myThread= new Thread(){
        @Override
        public void run() {
            try {
                sleep(3000);
                if (savedValue==0){startActivity(intentMenu); finish();}
                if (savedValue== 1){startActivity(intentKuwaitAr); finish();}
                if (savedValue ==2){startActivity(intentKuwaitEn); finish();}
                finish();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    };
    myThread.start();
}

【问题讨论】:

标签: java android sharedpreferences


【解决方案1】:

在第一个活动中,您将语言值放入 indemnity_calculation_kuwait。

getSharedPreferences("indemnity_calculation_kuwait",MODE_PRIVATE);

以及您从中获取的其他活动

getPreferences(MODE_PRIVATE);

请在第二个活动中使用以下共享首选项。谢谢。

getSharedPreferences("indemnity_calculation_kuwait",MODE_PRIVATE); 

【讨论】:

  • 非常感谢我注意到在许多托盘之后
【解决方案2】:

我发现了问题

需要添加应用名称

 SharedPreferences sharedPreferences = getSharedPreferences("indemnity_calculation_kuwait",MODE_PRIVATE);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多