Я пытаюсь сохранить данные, полученные фрагментом, в общую настройку, чтобы я мог повторно использовать данные, хранящиеся в общих предпочтениях, при повторном создании одного и того же фрагмента. Но почему-то данные не сохраняются, а значение по умолчанию для моего фрагмента возвращается. Ниже приведен код. Фрагмент реализации SharePreferenceДанные не сохранены в общих настройках в Commit
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
public class StreamFragment extends Fragment {
public String streamUrl=null;
TextView textView;
public static final String playerData="pData";
SharedPreferences playerSettings;
public StreamFragment(){};
@Override
public void onCreate(Bundle state) {
super.onCreate(state);
SharedPreferences playerSettings = getActivity().getSharedPreferences(playerData, Context.MODE_PRIVATE);
streamUrl = playerSettings.getString(streamUrl,"No Link Found");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_stream, container, false);
playerSettings = getActivity().getSharedPreferences(playerData, Context.MODE_PRIVATE);
streamUrl = playerSettings.getString("streamLink","No Link Found");
//getData();
Toast.makeText(getActivity(),"Stream Saved"+streamUrl,Toast.LENGTH_LONG).show();
return view;
}
public void getUrl(String data)
{
streamUrl=data;
playerSettings = this.getActivity().getSharedPreferences(playerData, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = playerSettings.edit();
editor.putString("streamLink", streamUrl);
editor.commit();
Toast.makeText(getActivity(),"Stream Saved"+streamUrl,Toast.LENGTH_LONG).show();
}
}
Заранее спасибо!
editor.commit(); устарел использовать editor.apply(); –
вы снова создаете экземпляр внутри метода oncreate. Просто запустите «SharedPreferences» внутри метода onCreate. – Nas
@JadavLalit слышал, что apply не отправляет результат успеха –