如何将(Android)应用程序上下文传递给Java类?

Sur*_*dhi 6 java android android-context

我有以下代码,我使用应用程序上下文来检索所需的信息:

public class Data{
   private boolean VarA;

   public void setVarA(boolean B,Context ctx)
   {
        SharedPreferences CoreDataStorage = ctx.getSharedPreferences(PREFS_NAME, 0);
    SharedPreferences.Editor editor = CoreDataStorage.edit();
        editor.putBoolean("PrefVarA", VarA);
        edit.commit();
   }

}
Run Code Online (Sandbox Code Playgroud)

现在我从下面的类调用公共方法setVarA()

public class MyActivity extends Activity{

    Data cd = new Data();

    @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.registration);
        cd.setVarA(true,this);
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面的活动中,它向我显示了无法从MyActivity转换为Context的编译错误.请建议任何解决方案.上面的代码是不是传递上下文的正确方法?

Jiv*_*ngs 10

您需要应用程序Context才能访问共享首选项.它应该是:

cd.setVarA(true,this.getApplicationContext());
Run Code Online (Sandbox Code Playgroud)

在... onCreateMyActivity.