2012-12-29 47 views
2

我是新來的Android,我不知道如何以檢索使用sharedpreferences存儲的值值,我找不到什麼,我必須對其他活動寫來使用這些值的任何實例。如果有人能幫助我,我真的很感激它檢索使用Sharedpreferences

這是怎麼了存儲數據:

protected void onResume() { 
    super.onResume(); 
    SharedPreferences prefs = getPreferences(0); 
    String restoredText1 = prefs.getString("cpw", "30"); 
    if (restoredText1 != null) { 
     savedcostperworker.setText(restoredText1, TextView.BufferType.EDITABLE); 

     int selectionStart = prefs.getInt("selection-start", -1); 
     int selectionEnd = prefs.getInt("selection-end", -1); 
     if (selectionStart != -1 && selectionEnd != -1) { 
      savedcostperworker.setSelection(selectionStart, selectionEnd); 
     } 
    } 
} 

protected void onPause() { 
    super.onPause(); 
    SharedPreferences.Editor editor = getPreferences(0).edit(); 
    editor.putString("cpw", savedcostperworker.getText().toString()); 
    editor.putInt("selection-start", savedcostperworker.getSelectionStart()); 
    editor.putInt("selection-end", savedcostperworker.getSelectionEnd()); 
} 

private EditText savedcostperworker; 

現在我要顯示在另一個活動一個TextView值「CPW」,但我不「知道你怎麼

+0

你缺少editor.commit(),這是必須的需要後,將值editor.putInt()..,否則修改將不會被放到首選項file.To得到其他活動這個價值,你需要使用getSharedPreferences ().. – ridoy

回答

5

忘了打電話給commit()保存您的編輯更改:

SharedPreferences.Editor editor = getPreferences(0).edit(); 
... 
editor.commit(); 

現在我要顯示在另一個活動一個TextView值「CPW」,但我不知道該怎麼

直接讓getSharedPreferences()與第一活動的名稱,並使用它像以前一樣:

SharedPreferences prefs = getSharedPreferences("MainActivity", 0); 
String string = prefs.getString("cpw", "String not found"); 
Log.v("SharedPrefs", string); 

你不能在第二活動使用getPreferences(),因爲它會調用getSharedPreferences()用了錯誤的文件名。有關更多信息,請參閱getPreferences()文檔。

+0

謝謝!有用!我浪費了很多時間尋找解決方案,現在看起來很容易 – user1937048

+0

我很高興能提供幫助。請點擊複選標記接受此答案和解決方案。 – Sam

+0

完成!再次感謝! – user1937048

相關問題