2012-02-11 20 views
5

Tengo el siguiente código en el que estoy usando el contexto de aplicación para recuperar la información necesaria:¿Cómo pasar el contexto de la aplicación (Android) a una clase Java?

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(); 
    } 

} 

Ahora estoy llamando el método público setVarA() de la clase a continuación

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); 
    } 
} 

En el La actividad de arriba me muestra un error de compilación que no puede convertir de MyActivity a Context. Por favor sugiera cualquier solución. ¿El código anterior no es la forma correcta de pasar el contexto?

Respuesta

9

Necesita el contexto de la aplicación para acceder a las preferencias compartidas. Debe ser:

cd.setVarA(true,this.getApplicationContext()); 

en el onCreate de MyActivity.

Cuestiones relacionadas