2015-04-05 55 views
1

首先我打電話getFriends。使用請求我獲取數據。它正常工作,給不爲空無法從SharedPreferences獲取數據

getFriends(getActivity()); 

private void getFriends(final Context context){ 
    VKRequest request = VKApi.friends().get(VKParameters.from(VKApiConst.FIELDS, 
      "id,first_name,last_name,photo_100,")); 
    request.executeWithListener(new VKRequest.VKRequestListener() { 
     @Override 
     public void onComplete(VKResponse response) { 
      super.onComplete(response); 
      VKList<VKApiUser> Friends= (VKList<VKApiUser>)response.parsedModel; 

      SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); 
      SharedPreferences.Editor editor = prefs.edit(); 

      Toast.makeText(context,Friends.get(0).last_name,Toast.LENGTH_LONG).show();//NOT NULL 

      for(int i = 0; i< Friends.size();++i) { 
       editor.putString("FriendFirstName" + String.valueOf(i), "asdsaddsa"); 
       editor.putString("FriendLastName"+ String.valueOf(i), Friends.get(i).last_name); 
       editor.putString("FriendPhoto"+ String.valueOf(i), Friends.get(i).photo_100); 
      } 
     } 
    }); 
} 

然後我打電話LoadData並嘗試從它

LoadFriends(getActivity()); 



public void LoadFriends(Context context){ 
     SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); 
     for(int i=0;i< 7; i++) { 
      if (prefs != null) { 
       Names.add(prefs.getString("FriendFirstName" + String.valueOf(i), null) 
         + " " + prefs.getString("FriendLastName" + String.valueOf(i), null)); 
      } 
     } 
} 

獲取數據,它使我的數據是previoud時候,我的意思是它不給我電流數據; 我在做什麼錯?

回答

5

您需要在SharedPreferences.Editor上致電commit()apply(),以便更改得以持續。

+0

並且'apply()'被認爲比'commit()'更快。 – 2015-04-05 13:00:40