2017-05-11 49 views
0

我有兩個活動,HomePageActivity(主頁)ListActivity(數據列表),ListActivity的數據來自SharedPreferences。我想從HomePageActivity中刪除ListActivity的SharedPreferences(例如,用本地數據重新同步遠程數據)。有沒有可能從HomePageActivity做到這一點?是否可以從其他活動中刪除MODE_PRIVATE Android SharedPreferences?

下面是數據存儲在SharedPreferences在ListActivity方式:

SharedPreferences mPrefs = getPreferences(MODE_PRIVATE); 
SharedPreferences.Editor prefsEditor = mPrefs.edit(); 
prefsEditor.putString(AppUser.SHARED_MYLIST, myList); 
prefsEditor.apply(); 

而且我希望能夠從HomePageActivity刪除這些數據。

+1

如果它是同一個應用程序,那麼是的,首選項不是特定於活動的,除非您以這種方式命名您的首選項文件。你遇到錯誤還是你沒有嘗試過? https://developer.android.com/training/basics/data-storage/shared-preferences.html – Neil

回答

0

嘗試

getPreferences("myPrefsName", MODE_PRIVATE) 
在這兩個你的活動

。您將獲得相同的SharedPreferences實例。

+0

我沒有使用字符串和int的getPreferences方法,我認爲你在談論'getSharedPreferences',但它仍然沒有沒有工作 – Mouss

0
public class MainActivity extend AppCompatActivity{ 
     protected void onCreate(@Nullable Bundle savedInstanceState) { 
      SharedPreferences mPrefs = getPreferences(MODE_PRIVATE); 
      SharedPreferences.Editor prefsEditor = mPrefs.edit(); 
      prefsEditor.putString(AppUser.SHARED_MYLIST, myList); 
      prefsEditor.apply(); 
     } 
} 


public class MainActivity2 extend AppCompatActivity{ 
     protected void onCreate(@Nullable Bundle savedInstanceState) { 
      SharedPreferences mPrefs = getPreferences(MODE_PRIVATE); 
      SharedPreferences.Editor prefsEditor = mPrefs.edit(); 
      prefsEditor.remove(AppUser.SHARED_MYLIST).apply(); 
     } 
} 
+0

我試過了,它不起作用...但是,當我嘗試從MainActivity中刪除pref時,它起作用 – Mouss

相關問題