如何在另一个类中的类中使用Android getContext?

时间:2013-10-23 10:22:14

标签: java android class

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

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

不幸的是我收到错误说:

  

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

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

2 个答案:

答案 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();