Android 如何使用SharedReferences将数据从活动传递到另一个活动
我试图将我的数据从第一个活动传递到另一个活动,比如说第四个活动。我在第一个活动中使用Android 如何使用SharedReferences将数据从活动传递到另一个活动,android,sharedpreferences,Android,Sharedpreferences,我试图将我的数据从第一个活动传递到另一个活动,比如说第四个活动。我在第一个活动中使用onClick按钮上的代码(数据来自),在第四个活动中使用onClick按钮(当数据要从第一个活动传递时)。但它不起作用。它只传递0数据,我将其设置为默认值。请帮忙 这是我第一次活动中的SharedReferencescode SharedPreferences sharedPreferences = getSharedPreferences("userInfo", Context.MODE_PRIVATE);
onClick
按钮上的代码(数据来自),在第四个活动中使用onClick
按钮(当数据要从第一个活动传递时)。但它不起作用。它只传递0数据,我将其设置为默认值。请帮忙
这是我第一次活动中的SharedReferences
code
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();
这是我四个活动中的SharedReferences
code:
SharedPreferences sharedPreferences = getSharedPreferences("userInfo", Context.MODE_PRIVATE);
user_id = sharedPreferences.getInt("user_id", 0);
new UbahLapor().execute();
editor.apply()
试试看
editor.apply();
实例
editor.commit;
以这种方式保存您的首选项(前提是用户id
、用户名
、姓名
和电子邮件
已经声明并分配了值):
然后再读一遍:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
user_id = sharedPreferences.getInt("user_id", 0);
你需要使用而不是
apply()异步更新您的sharedprefernces。
commit()同步更新您的SharedPreferences。请注意,commit()是一个阻塞调用。
如果使用共享首选项存储数据,请首先尝试:
SharedPreferences.Editor editor =
PreferenceManager.getDefaultSharedPreferences(this).edit();
editor.putString("username", username);
editor.putString("name", name);
editor.apply();
Intent intent = new Intent(activity, activityClass);
intent.putExtra("message", text);
activity.startActivity(intent);
使用共享首选项获取数据
SharedPreferences sharedPreferences = getSharedPreferences("userInfo", Context.MODE_PRIVATE);
username= sharedPreferences.getString("username", null);
使用intent将第一个活动的数据传递给另一个活动,然后重试:
SharedPreferences.Editor editor =
PreferenceManager.getDefaultSharedPreferences(this).edit();
editor.putString("username", username);
editor.putString("name", name);
editor.apply();
Intent intent = new Intent(activity, activityClass);
intent.putExtra("message", text);
activity.startActivity(intent);
使用意图获取数据
Intent intent=getIntent();
success_msg_txt.setText(intent.getStringExtra("message"));
我觉得你的代码(基本上)很好。在第一次活动中将这些变量分配给共享首选项时,您确定这些变量具有值吗?