簡體   English   中英

無法從SharedPreferences獲取數據

[英]can't get data from SharedPreferences

首先,我叫getFriends 使用請求我獲取數據。 它可以正常工作,並且不為空

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));
            }
        }
}

而且這給我提供了過時的數據,我的意思是,它沒有給我合適的數據。 我究竟做錯了什么?

您需要在SharedPreferences.Editor上調用commit()apply() ,以便更改得以SharedPreferences.Editor

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM