0

我有一个活动类,它将扫描 NFC 标签并将其分配给一个字符串(这部分运行良好),然后通过 sharedpreferences 共享该字符串,然后更新一个 textview(除其他外)。由于某种原因,文本视图似乎永远不会使用 NFC 标签中的文本进行更新。这应该是一个足够简单的问题来解决 - 我根本无法获取分配给字符串以通过 sharedpreferences 更新 textview 的 NFC 数据,我不知道为什么。

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();

RULES.JAVA 代码片段:(显示时间 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);   
4

1 回答 1

0

editor.putString("name", name)等等 prefs.getString("name", "");

代替

SharedPreferences prefs=getPreferences(Context.MODE_PRIVATE);

在 CONNECT.JAVA 你应该使用

SharedPreferences prefs = getSharedPreferences(NDEF_PREF, Context.MODE_PRIVATE);

当您调用getPreferences该首选项时,该首选项对于该活动是私有的。

于 2013-04-22T06:09:03.970 回答