再次使用stackoverflow,
我想存储会话,但是我有问题,我跳错了 我上课了#34; Session"另一个名为" MainActivity"
的课程在我的课程中,我有:
public void saveSession(Context ctx,String username, String password){
sharedpreferences = PreferenceManager.getDefaultSharedPreferences(ctx);
Editor editor = sharedpreferences.edit();
String u = username;
String p = password;
editor.putString(name, u);
editor.putString(pass, p);
editor.commit();
}
在我的主要有:
session.saveSession(getApplicationContext(), username.getText().toString(),password.getText().toString());
我收到此错误:
03-12 01:47:01.648: E/AndroidRuntime(3395): FATAL EXCEPTION: main
03-12 01:47:01.648: E/AndroidRuntime(3395): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.xx/com.example.xx.UserList}: java.lang.NullPointerException
03-12 01:47:01.648: E/AndroidRuntime(3395): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
更新:onCreate()方法
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.user_list);
//loadSesion(); session.loadSession(getApplicationContext());
usernameSession = session.getUsernameSession();
passwordSession = session.getPasswordSession();
inicializeBdSqlite();
inicialize();
user_list.setOnItemClickListener(this);
}
答案 0 :(得分:1)
首先,关于SharedPreferences
以及您使用它的方式。我有一些笔记:
1)确保字符串name
和pass
是最终字符串,并且已经在此方法所在的类中初始化,因为如果sharedPreference
个键中的任何一个{{1}整个文件可能会破坏如下:
null
2)无需将新值放入新字符串中,直接传递
final string name = "name";
final string pass = "password";
3)按照以下方式制作public void saveSession(Context ctx,String username, String password){
SharedPreference sharedpreferences = PreferenceManager.getDefaultSharedPreferences(ctx);
Editor editor = sharedpreferences.edit();
editor.putString(name, username);
editor.putString(pass, password);
editor.commit();
}
方法:
getter
4)关于public String getUserName(Context ctx){
SharedPreference sharedpreferences = PreferenceManager.getDefaultSharedPreferences(ctx);
return sharedpreferences.getString(name, "");//"" is the default value
}
行user_list
。确保您的主要活动user_list.setOnItemClickListener(this);
类implements
如下:
OnClickListener
并在public class MainActivity extends Activity implements OnClickListener {
覆盖如下:
MainActivity
我希望它有所帮助