在我的Android应用程序中,我正在使用标准的Android登录模板构建登录屏幕。在此代码模板中,活动中有一个名为UserLoginTask的类。如果用户成功登录,我想将用户设置为sharedPreference,为此我需要上下文。所以我使用这段代码:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
不幸的是我收到错误说:
方法getContext()未定义类型 LoginActivity.UserLoginTask
有人知道如何从UserLoginTask中获取上下文吗?
答案 0 :(得分:2)
使用LoginActivity.this
代替getContext()
来访问外部类。
答案 1 :(得分:1)
我认为UserLoginTask
延伸AsincTask
。在这种情况下,传递任务中的共享首选项:
private class UserLoginTask extends AsyncTask<Void, Void, Void>{
SharedPreferences sp;
UserLoginTask(SharedPreferences sp){
this.sp = sp;
}
@Override
protected Void doInBackground(Void... params) {
//do whatever you need with the sp property
return null;
}
}
并且电话是这样的:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
new UserLoginTask(prefs).execute();