2012-02-11 13 views
5

Ho il seguente codice in cui sto usando il contesto dell'applicazione per recuperare le informazioni necessarie:Come passare il contesto dell'applicazione (Android) a una classe 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(); 
    } 

} 

Ora sto chiamando il metodo pubblico setVarA() dalla classe sotto

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

Nel attività sopra di esso mi mostra errore di compilazione che non può trasmettere da MyActivity a Context. Si prega di suggerire qualsiasi soluzione. Il codice precedente non è il modo corretto per passare il contesto?

risposta

9

È necessario l'applicazione Contesto per accedere alle preferenze condivise. Dovrebbe essere:

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

nel onCreate di MyActivity.

Problemi correlati