我正在尝试将我的数据从第一个活动传递到另一个活动,即第四个活动。我正在使用onClick
上的代码作为数据来自的第一个活动中的按钮,以及当数据要从第一个活动传递时在第四个活动的onclick
中使用按钮。但它行不通。它只是传递0数据,这是我默认设置的数据。请帮助
这是我第一次活动中的SharedPreferences
代码
SharedPreferences sharedPreferences = getSharedPreferences("userInfo", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("user_id", user_id);
editor.putString("username", usernameJ);
editor.putString("name", name);
editor.putString("email", email);
editor.apply();
这是我的四个活动中的SharedPreferences
代码:
SharedPreferences sharedPreferences = getSharedPreferences("userInfo", Context.MODE_PRIVATE);
user_id = sharedPreferences.getInt("user_id", 0);
new UbahLapor().execute();
答案 0 :(得分:1)
editor.apply()
在线程(异步)中完成工作,因此可能需要时间。
所以请尝试
editor.apply();
实例
editor.commit;
答案 1 :(得分:1)
以这种方式保存您的首选项(前提是已经声明并分配了user_id
,username
,name
和email
的值):
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(this).edit();
editor.putInt("user_id", user_id);
editor.putString("username", usernameJ);
editor.putString("name", name);
editor.putString("email", email);
editor.apply();
并读回:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
user_id = sharedPreferences.getInt("user_id", 0);
答案 2 :(得分:1)
您需要使用editor.commit()而不是editor.apply()。
apply()异步更新您的共享首选项。 commit()同步更新您的共享首选项。请注意,commit()是阻塞调用。
答案 3 :(得分:1)
是这个
首先,如果您使用共享首选项存储数据,请尝试:
SharedPreferences.Editor editor =
PreferenceManager.getDefaultSharedPreferences(this).edit();
editor.putString("username", username);
editor.putString("name", name);
editor.apply();
使用共享首选项获取数据
SharedPreferences sharedPreferences = getSharedPreferences("userInfo", Context.MODE_PRIVATE);
username= sharedPreferences.getString("username", null);
第二步,使用意图将数据第一个活动传递给另一个活动,然后尝试:
Intent intent = new Intent(activity, activityClass);
intent.putExtra("message", text);
activity.startActivity(intent);
使用意图获取数据
Intent intent=getIntent();
success_msg_txt.setText(intent.getStringExtra("message"));