Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.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
Java 在我的第二个活动中,共享首选项值为null_Java_Android - Fatal编程技术网

Java 在我的第二个活动中,共享首选项值为null

Java 在我的第二个活动中,共享首选项值为null,java,android,Java,Android,我需要在第二个活动中使用OnReceivedDataMethod中的字符串数据,以便将这些字符串数据保存到文件中,但目前我的文件中有空数据 SharedPreferences sp; UsbSerialInterface.UsbReadCallback mCallback = new UsbSerialInterface.UsbReadCallback() { //Defining a Callback which triggers whenever data is read. @Ov

我需要在第二个活动中使用OnReceivedDataMethod中的字符串数据,以便将这些字符串数据保存到文件中,但目前我的文件中有空数据

 SharedPreferences sp;
UsbSerialInterface.UsbReadCallback mCallback = new UsbSerialInterface.UsbReadCallback() { //Defining a Callback which triggers whenever data is read.
    @Override
    public void onReceivedData(byte[] arg0) {

        try {
            data = new String(arg0, "UTF-8");
            data.concat("/n");
             sp = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
            SharedPreferences.Editor et = sp.edit();
            et.putString("key",data);
            et.apply();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
};
在第二个活动中

    protected void onCreate(Bundle savedInstanceState) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
    desiredPreference =  sharedPreferences.getString("key","data");
    Toast.makeText(this,"spdata"+desiredPreference,Toast.LENGTH_LONG).show();

}

该值为null,因为您使用了
PreferenceManager.GetDefaultSharedReferences(this)
,它返回带有此活动名称的首选项,并且与您在第一个活动中使用的其他首选项不同。相反,你应该用你在第一次活动中所用的方法来调用你的首选项

SharedPreferences prefs = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
String desiredPreference =  sharedPreferences.getString("key","data");

要了解更多有关差异的信息,您可以检查并回答。

该值为空,因为您使用了
PreferenceManager.GetDefaultSharedReferences(this)
,它返回带有此活动名称的首选项,并且与您在第一个活动中使用的其他首选项不同。相反,你应该用你在第一次活动中所用的方法来调用你的首选项

SharedPreferences prefs = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
String desiredPreference =  sharedPreferences.getString("key","data");

要了解更多有关差异的信息,您可以查看并回答。

执行类似操作

存放

    SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPref.edit();
    editor.putString("key", data);
    editor.commit();
重审

  SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE);
  String checkDate = sharedPref.getString("key","");

这样做,

存放

    SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPref.edit();
    editor.putString("key", data);
    editor.commit();
重审

  SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE);
  String checkDate = sharedPref.getString("key","");