【发布时间】:2018-03-23 23:20:24
【问题描述】:
我正在使用SharedPreferences 来存储片段中的数据并将其发送到其他 4 个片段,但我的问题是当应用程序正在运行并且我在单击按钮上发送数据时,其他片段需要一段时间才能实际接收到数据(或者当他们更新 3 或 4 次滑动后滑动页面时)我在每个片段中尝试了 setUserVisibleHint,在活动中尝试了 onpagechangelistener,但没有任何变化。如何让其他片段在我滑动到页面或按下按钮时接收数据?
注意:我不想在每个片段中放置按钮来加载数据。
发件人:
int riddle;
Context context = getActivity();
SharedPreferences SU = context.getSharedPreferences(
"Riddle", Context.MODE_PRIVATE);
SharedPreferences.Editor editor= SU.edit();
editor.putString("Riddle",""+riddle);
editor.commit();
其他片段:
int Riddle;
Context context = getActivity();
SharedPreferences SU = context.getSharedPreferences(
"Riddle", Context.MODE_PRIVATE);
Riddle= Integer.parseInt(SU.getString("riddle",""));
更新 原帖发错了,发件人应该是:
int riddle;
Context context = getActivity();
SharedPreferences SU = context.getSharedPreferences(
"Riddle", Context.MODE_PRIVATE);
SharedPreferences.Editor editor= SU.edit();
editor.putString("riddle",""+riddle);
editor.commit();
因为关键的事情。
还有一个问题,我发送数据的片段是最后一页(第 5 页),当我发送数据时,它旁边的页面(第 4 页)不会更新,直到我滑动到第 3 页并返回它
【问题讨论】:
-
你可以使用片段 getContext() 代替 Context context = getActivity() 对吗?
-
@Anonymous 让我试试 1 秒
-
@Anonymous 是的,你可以
-
还将 editor.commit() 更改为 editor.apply() 并检查问题是否解决。
-
不,但谢谢
标签: android android-fragments sharedpreferences