我正在尝试创建一个类来获取预定义的数据,但是当我调用该方法时Load()
,应用程序会停止。你可以帮帮我吗?谢谢
package com.example.nano.prueba.login.loginprueba;
import android.content.Context;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
/**
* Created by admin on 02/04/2016.
*/
public class LoadPreferencias extends AppCompatActivity {
private String User;
private String Pass;
public void Load(){
SharedPreferences Preferencias = getSharedPreferences("DatosUser", Context.MODE_PRIVATE);
User =(Preferencias.getString("User",""));
Pass = (Preferencias.getString("Pass", ""));
}
public String GetUser()
{
Load();
return User;
}
public String GetPass()
{
return Pass;
}
}
添加错误代码
04-03 09:55:44.445 31786-31786/? E/AndroidRuntime:致命异常:主进程:com.example.nano.test.login.logintest,PID:31786 java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.nano.test.login.logintest/com .example.nano.test.login.logintest.MainActivity}:java.lang.NullPointerException:尝试在一个android.app.ActivityThread 的 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2658) 处的空对象引用。
根据你的错误信息:
您正在从 MainActivity 调用 Load() 方法,Load() 方法需要接收 Context,因此出现错误!,修改您的方法以接收它:
虽然更好的设计是创建 2 个方法,当您需要 User 或 Pass 值时调用,您的类
LoadPreferencias
不需要扩展AppCompatActivity
,您可以添加方法来保存值,setUser()
并且,就在这里setPass()
:因为
MainActivity
你会执行这样的方法: