2011-09-14 86 views
0

我想在我的應用程序中使用SharedPreferences,因爲我剛開始使用它,基本上我想要做的事情是:我在主要活動中創建SharedPreference對象,然後在第二個活動我有一個列表視圖和單擊項目我使用putInt();將整數發送文本。在新的活動中,我有一個按鈕,在adroid系統中添加sharedpreference。最後根據發送到第二個活動我想表明的活動編號3.SharedPreferences Android問題

這裏不同的文字標識是一個小代碼:

主要活動:

SharedPreferences faves = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     SharedPreferences.Editor editor = faves.edit(); 
     editor.putInt("favorites",0); 
     editor.commit(); 

第二項活動:

SharedPreferences favs= PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     final SharedPreferences.Editor editor = favs.edit(); 

第三個活動,我想顯示的文字取決於被點擊項目:

favs.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       editor.putInt("favorites", getIntent().getIntExtra("id", 0)); 
      } 
     }); 

任何建議如何解決這個問題?

+0

爲什麼你有編輯器標記爲最終? – Rich

回答

0

您不必真的創建自己的SharedPreference對象,api Activity.getSharedPreference(名稱,模式)將執行此操作。

基本上它所做的是在你的應用程序自己的文件夾下創建一個xml文件,並且每個放置...()都會在xml中添加一個項目,以便以後可以更新和閱讀,只需要正確的名字。

擁有全局編輯器是一個壞主意,有時可能會丟失數據,因此每次讀取/寫入sharedPreference時都需要編輯器。

0

好吧,首先它很難理解這個問題。在示例代碼中,您試圖將值存儲在主活動和第三個活動中,但似乎沒有讀取值。然後在最後問你「有什麼建議如何解決這個問題?」 「那」代表什麼?你是否收到錯誤或者你不期望的結果?這裏是我使用的一些示例代碼。我有一個靜態的Constants類,其中有一些值可以在我的應用程序的其他部分重複使用,但您明白了。

ApplicationContext context = ApplicationContext.getInstance(); //I use a custom app context but any context will do. 
SharedPreferences prefs = context.getSharedPreferences(
Constants.PREFS_FILE_NAME, Activity.MODE_PRIVATE); 
prefs.getString("favorites", null);//or any other getter you want to use