Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用SharedReferences将数据从活动传递到另一个活动_Android_Sharedpreferences - Fatal编程技术网

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"));
我觉得你的代码(基本上)很好。在第一次活动中将这些变量分配给共享首选项时,您确定这些变量具有值吗?