我正在使用以下代码在return this.api
.login(username, password)
.map((res:Response) => res.json())
.mergeMap(data=> $http.get(data.id));
中添加首选项并在onStop()
中检索。一切正常但在杀死应用程序后,共享首选项未更新其值并且在安装应用程序后第一次插入的值是一直都在。
代码:
onActivityCreated()
答案 0 :(得分:1)
创建一个包含片段的活动:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.content_layout, new ContentFragment())
.commit();
}
public static class ContentFragment extends Fragment {
EditText etA, etB;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.main_fragment, container, false);
etA = (EditText) view.findViewById(R.id.et_a);
etB = (EditText) view.findViewById(R.id.et_b);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
SharedPreferences appdata = PreferenceManager.getDefaultSharedPreferences(getActivity());
etA.setText(appdata.getString("A", ""));
etB.setText(appdata.getString("B", ""));
}
@Override
public void onStop() {
super.onStop();
SharedPreferences appdata = PreferenceManager.getDefaultSharedPreferences(getActivity());
SharedPreferences.Editor editor = appdata.edit();
editor.putString("A", etA.getText().toString());
editor.putString("B", etB.getText().toString());
editor.commit();
}
}
}
片段布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/et_a"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<EditText
android:id="@+id/et_b"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
我测试了这段代码,它对我来说非常合适。请检查并告诉我们您做错了什么?