2

在我的 android 应用程序中,我正在使用标准的 android 登录模板构建登录屏幕。在此代码模板中,活动中有一个名为 UserLoginTask 的类。如果用户成功登录,我想将用户设置为 sharedPreference,为此我需要上下文。所以我使用这段代码:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());

不幸的是,我收到一条错误消息:

未为 LoginActivity.UserLoginTask 类型定义方法 getContext()

有人知道我如何从 UserLoginTask 中获取上下文吗?

4

2 回答 2

2

使用LoginActivity.this而不是getContext()访问外部类。

于 2013-10-23T10:24:08.143 回答
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();
于 2013-10-23T10:28:21.993 回答