我已将Shared Preference
中的值存储在名为CommunityFragment
的片段中。现在,我想将其检索到名为 Add_Task 的另一个Activity中的String变量中。
问题在于,当我尝试从Shared Preference
检索该值时,我将其视为空。
任何人都可以建议我代码有什么问题。我在下面发布我的代码。
CommunityFragment.java
public class CommunityFragment extends Fragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View rootView = inflater.inflate(R.layout.fragment_community, container, false);
{
final SharedPreferences pref11=getActivity().getPreferences(0);
SharedPreferences.Editor edts=pref11.edit();
edts.putString("mynumber",t4);
edts.commit();
}
});
return rootView;
}
Add_Task.java
public class Add_task extends Activity{
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_task);
SharedPreferences pref = getPreferences(MODE_PRIVATE);
String id = pref.getString("mynumber", "empty");
Toast.makeText(this,""+id,Toast.LENGTH_LONG).show();
}
}
答案 0 :(得分:1)
发生这种情况是因为您使用的是您的活动专用的偏好设置,使用全局设置为您的应用偏好设置:
PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
或使用此方法:
activity.getSharedPreferences("myprefs", MODE_PRIVATE);
并在第二个活动中使用相同的名称获取首选项:“myprefs”
答案 1 :(得分:1)
使用此
final SharedPreferences pref11 = getActivity().getSharedPreferences("MyValue", 0);
而不是
final SharedPreferences pref11=getActivity().getPreferences(0);
并检索与
相同的内容 final SharedPreferences pref11 = getActivity().getSharedPreferences("MyValue", 0);
而不是
SharedPreferences pref = getPreferences(MODE_PRIVATE);
在Add_Task活动中。
答案 2 :(得分:1)
试试这个:
SharedPreferences pref11= PreferenceManager.getDefaultSharedPreferences(getContext());
SharedPreferences.Editor edts = pref11.edit();
edts.putString("mynumber",t4);
edts.commit();
在Add_Task.java中:
SharedPreferences pref= PreferenceManager.getDefaultSharedPreferences(getContext());
String id = pref.getString("mynumber", "empty");
答案 3 :(得分:0)
在 CommunityFragment.java
中 final SharedPreferences pref11 = getActivity().getSharedPreferences("Value", 0);
SharedPreferences.Editor editor = pref11.edit();
editor.putString("mynumber",t4);
editor.commit();
在 Add_Task.java
中 final SharedPreferences pref11 = getSharedPreferences("Value", 0);
String Name1 = values.getString("mynumber", null);