2013-06-26 45 views
-1

我是android開發新手。在我的第一個應用程序中,我使用SharedPreferences在整個應用程序中共享一些字符串。現在我正在製作和使用標籤的應用程序。我的第一個活動是LoginActivity,我設置SharedPreferences:如何從一個從片段擴展的類獲取SharedPreference?

myPrefs = getSharedPreferences("myPrefs", MODE_PRIVATE); 

SharedPreferences.Editor e = myPrefs.edit(); 
e.putString("name", "Piscean"); 
e.commit(); 

Intent mainIntent = new Intent(LoginActivity.this, TabActivity.class); 
startActivity(mainIntent); 

TabActivity從FragmentActivity擴展,它有四個Framents。現在我想在TabActivity的片段之一中訪問SharedPreferences。 我試過用

SharedPreferences myPrefs = getActivity().getSharedPreferences("myPrefs", 0); 
System.out.println("Name: "+myPrefs.getString("name", "empty")); 

和它的打印出來是空的。任何想法我怎麼能做到這一點?提前致謝。

回答

2

,你必須使用getActivity().getSharedPreferences(...)

+0

對不起,我沒有提到。我用它,但總是給出默認值。例如SharedPreferences myPrefs = getActivity()。getSharedPreferences(「myPref」,0); System.out.println(「Name:」+ myPrefs.getString(「name」,「empty」));總是打印出空的。並且我在之前的活動中將其設置爲Piscean – Piscean

+1

@Piscean編輯您的問題併發布您用於存儲的代碼並從共享首選項中檢索值 – Blackbelt

+0

剛編輯的問題請看看 – Piscean

1

請注意,您的上下文已經從活動改爲片段。我在你的活動假設你使用:

this.getSharedPreferences(..) 

在你的片段,你需要你的容器活動的背景下:

getActivity().getSharedPreferences(...) 
相關問題