带有 SharedPreferences 的 NullPointerException
NullPointerException with SharedPreferences
我正在尝试从我的 Main.java 文件中获取一个 textView,当单击通知时,它应该会打印出来。我知道我要为此使用 sharedPreferences。我做到了。但是,它一直抛出 NullPointerException,但我已经在我的 NotificationPage.java class 中调用了我需要调用的所有内容,所以我不确定到底出了什么问题。请提供任何帮助。
这是我的NotificationPage.javaclass
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.TextView;
public class NotificationPage extends Activity {
SharedPreferences sp;
SharedPreferences.Editor edit;
TextView arrival;
TextView notifdate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.notification);
notifdate=(TextView)findViewById(R.id.textView5);
arrival=(TextView)findViewById(R.id.textView4);
sp=getSharedPreferences(arr, MODE_PRIVATE);
edit=sp.edit();
sp.getString(arr, null);
edit=sp.edit();
edit.putString(arr,sp.getString(arr,null));
notifdate.setText("Hey!" + sp.getString(arr,null));
edit.apply();
}
这是从我的其他 java 文件中获取我的共享首选项的代码行
arr=arrival.getText().toString();
sp=getSharedPreferences(arr,MODE_PRIVATE);
初始化您的共享首选项对象 (sp
)
sp = getSharedPreferences("Session Data", Context.MODE_PRIVATE);
私人最终字符串SP_FILE = "my_shared_preferences";
您不知道如何使用共享首选项。
请参考Shared Preference Guide.
您有 2 种方式使用共享首选项,读取或写入。
如果您写入共享首选项,请先为其命名。
public static final String SP_FILE_NAME = "my_shared_preferences";
SharedPreferences sp = getSharedPreferences(SP_FILE_NAME, MODE_PRIVATE);
sp.edit().putString("key", "value").apply();
一申请一编辑。在中间你可以放你想要的东西。
读取值:
SharedPreferences sp = getSharedPreferences(SP_FILE_NAME, MODE_PRIVATE);
String value = sp.getString("key", "defaultValue");
希望您能看到您的代码中有什么问题。
输入键值
public static final String SP_NAME = "my_preferences";
SharedPreferences sp = getSharedPreferences(SP_NAME, MODE_PRIVATE);
sp.edit().putString("key", "value").apply();
获取一个值
SharedPreferences sp = getSharedPreferences(SP_FILE_NAME, MODE_PRIVATE);
String value = sp.getString("key", "defaultValue");
这是我的NotificationPage.javaclass
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.TextView;
public class NotificationPage extends Activity {
SharedPreferences sp;
SharedPreferences.Editor edit;
TextView arrival;
TextView notifdate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.notification);
notifdate=(TextView)findViewById(R.id.textView5);
arrival=(TextView)findViewById(R.id.textView4);
sp=getSharedPreferences(arr, MODE_PRIVATE);
edit=sp.edit();
sp.getString(arr, null);
edit=sp.edit();
edit.putString(arr,sp.getString(arr,null));
notifdate.setText("Hey!" + sp.getString(arr,null));
edit.apply();
}
这是从我的其他 java 文件中获取我的共享首选项的代码行
arr=arrival.getText().toString();
sp=getSharedPreferences(arr,MODE_PRIVATE);
初始化您的共享首选项对象 (sp
)
sp = getSharedPreferences("Session Data", Context.MODE_PRIVATE);
私人最终字符串SP_FILE = "my_shared_preferences";
您不知道如何使用共享首选项。 请参考Shared Preference Guide.
您有 2 种方式使用共享首选项,读取或写入。
如果您写入共享首选项,请先为其命名。
public static final String SP_FILE_NAME = "my_shared_preferences";
SharedPreferences sp = getSharedPreferences(SP_FILE_NAME, MODE_PRIVATE);
sp.edit().putString("key", "value").apply();
一申请一编辑。在中间你可以放你想要的东西。
读取值:
SharedPreferences sp = getSharedPreferences(SP_FILE_NAME, MODE_PRIVATE);
String value = sp.getString("key", "defaultValue");
希望您能看到您的代码中有什么问题。
输入键值
public static final String SP_NAME = "my_preferences";
SharedPreferences sp = getSharedPreferences(SP_NAME, MODE_PRIVATE);
sp.edit().putString("key", "value").apply();
获取一个值
SharedPreferences sp = getSharedPreferences(SP_FILE_NAME, MODE_PRIVATE);
String value = sp.getString("key", "defaultValue");