2017-05-11 44 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

相关问题