Java SharedReferences数据仍将不会更新TextView

Java SharedReferences数据仍将不会更新TextView,java,android,textview,sharedpreferences,Java,Android,Textview,Sharedpreferences,我有一个活动类,它将扫描NFC标记并将其分配给字符串(这部分功能正常),然后通过SharedReferences共享该字符串,然后更新textview(以及其他内容)。由于某些原因,textview似乎从未使用NFC标记中的文本进行更新。这应该是一个足够简单的问题来解决-我根本无法通过SharedReferences获得分配给字符串的NFC数据来更新textview,我不知道为什么 CONNECT.JAVA代码段: // after scanning - splitting the mes

我有一个活动类,它将扫描NFC标记并将其分配给字符串(这部分功能正常),然后通过SharedReferences共享该字符串,然后更新textview(以及其他内容)。由于某些原因,textview似乎从未使用NFC标记中的文本进行更新。这应该是一个足够简单的问题来解决-我根本无法通过SharedReferences获得分配给字符串的NFC数据来更新textview,我不知道为什么

CONNECT.JAVA代码段:

   // after scanning - splitting the message by comma
          String[]tagdata=msgtext.split(",");

        String networkSSID = tagdata[0].toString();
        String networkPass = tagdata[1].toString();
        String time = tagdata[2].toString();
        String restricted = tagdata[3].toString();
        String corename = tagdata[4].toString();





        String NDEF_PREF = "prefs";
        SharedPreferences prefs = getSharedPreferences(NDEF_PREF, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor=prefs.edit();
     //   editor.putBoolean(time, true);
        editor.putString("time", time);
        editor.putBoolean(restricted, true);
        editor.putBoolean(corename, true);
        editor.commit();
JAVA代码片段:(其中显示时间文本视图-但从不更改)

editor.putString(“name”,name)
等等,以及prefs.getString(“name”,“name”)

而不是

SharedReferences prefs=getPreferences(Context.MODE\u PRIVATE)

在CONNECT.JAVA中,您应该使用

SharedReferences prefs=getSharedReferences(NDEF\u PREF,Context.MODE\u PRIVATE)


当您调用
getPreferences
时,首选项是活动的专用项。

您正在读取的共享引用文件与您正在写入的文件不同。我不理解您的上述评论。但是您应该仔细看看如何打开共享首选项文件。您没有为其中一个文件指定文件名。我按照建议更新了上面的源代码(谢谢,这是一个很大的问题!),但我仍然无法使用新数据更新textview:(在我扫描NFC标记后-textview仍然不会通过SharedReferences使用扫描的文本更新现在我在=Time.setText(String.valueOf(Time));…上收到一个空指针错误,并且仍然没有更新textview:(这意味着时间为空,让我看看。谢谢!:)(非常感谢您的帮助)
    String NDEF_PREF = "prefs";
    SharedPreferences prefs = getSharedPreferences(NDEF_PREF, Context.MODE_PRIVATE); 
    boolean name = prefs.getBoolean("name", true); 
    boolean code = prefs.getBoolean("corename", true);
    //boolean time = prefs.getBoolean("time", true);
    String time = prefs.getString("time", "");
    boolean ssid = prefs.getBoolean("restricted", true);
    Time.setText(String.valueOf(time));
//String time = String.valueOf(time);



       Intent intent2 = new Intent(Rules.this, KillTimer.class);
        PendingIntent pintent2 = PendingIntent.getActivity(Rules.this, 0, intent2,
                0);
        AlarmManager alarm2 = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
                time ? 1000 : 0, pintent2);