如何在不同活动之间使用SharedPreferences?

时间:2017-12-29 10:48:53

标签: android android-sharedpreferences

我遇到了在不同活动中使用SharedPreferences的问题,并且没有创建XML文件(我不知道为什么)。

我在两个活动中使用SharedPreferences:

  • 这是第一个,我只需要阅读文件:

    func (e Error) Error() string {
        return fmt.Sprintf("Error: %+v", e.Message)
    }
    
  • 这是另一项活动,在那里我阅读了用户首选项,我需要保存它们并将它们包含在SharedPreferences中:

     TextView screenCurrency = findViewById(R.id.dollar);
    
    preferences = getSharedPreferences("UserPreference", Context.MODE_PRIVATE);
    
    if(preferences.contains("currency")){
    
        screenCurrency.setText(preferences.getString("currency","defect_currency"));
    
        if(preferences.getString("currency","defect_currency").equals("USD")){
    
            screenCurrency.setText("$");
    
        } else if(preferences.getString("currency","defect_currency").equals("EUR")){
    
            screenCurrency.setText("€");
    
        }
    } else {
    
        screenCurrency.setText("$");
    }
    

任何人都知道出了什么问题?

3 个答案:

答案 0 :(得分:0)

更改您的代码

   preferences = getSharedPreferences("UserPreference", Context.MODE_PRIVATE);
    String currency = preferences.getString("currency",null)
    if(currency.contains("currency")){

答案 1 :(得分:0)

我认为你缺少editor.commit();放置值后

var arr1 = ["CRS02","CRS04","CRS03","CRS01","CRS05"];
var arr2 = ["CRS02","CRS03","CRS05"];
var output = arr1.map( s => arr2.indexOf( s ) != -1 ? s : "--" );
console.log( output );

答案 2 :(得分:0)

如果您正在使用sharedPreferences进行活动,则必须使用 SharedPreferences sharedPreferences = getSharedPreferences(“myinfo”,Context.MODE_PRIVATE);