【问题标题】:How to Android getContext in a class within another class?如何在另一个类中的一个类中获取Android getContext?
【发布时间】:2013-10-23 10:22:13
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: java android class


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我假设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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-27
      相关资源
      最近更新 更多