2016-06-02 9 views
0

Ich habe einen Wert in einer Aktivitätsklasse. Ich möchte diesen Wert in einer Nicht-Aktivitätsklasse verwenden. Normalerweise werden Daten zwischen Aktivitätsklassen zu teilen, verwende ich wie,Wie können Sie gemeinsame Voreinstellungen aus einer Aktivitätsklasse in Android in eine Nicht-Aktivitätsklasse abrufen?

FirstActivityClass.java

SharedPreferences notification_id = getSharedPreferences("NOTIFICATION_ID", MODE_PRIVATE); 
SharedPreferences.Editor notificationIDEditor = notification_id.edit(); 
notificationIDEditor.putString("notification_id", notificationId)     
notificationIDEditor.apply(); 

und der Wert von notification_id in einer anderen Klasse abzurufen,

SecondActivityClass.java

SharedPreferences notificationIDSharedRetrieve = getSharedPreferences("NOTIFICATION_ID", MODE_PRIVATE); 
notificationID = notificationIDSharedRetrieve .getString("notification_id", null); 

Aber angenommen, die zweite Klasse war eine Nicht-Aktivitätsklasse, wie kann ich die Daten in einer Nicht-Aktivitätsklasse abrufen?

+3

wenn 'zweite Klasse eine nicht-Aktivität CLASS' dann für den Zugriff auf' 'getSharedPreferences Methode –

+0

Einige Syntax oder Wissen über die Methodik für diese, helfen würde Context zweite Klasse übergeben wurde. – harshvardhan

+0

Vielleicht [hilft] (http://stackoverflow.com/questions/3549596/sharing-data-amongst-activities-and-services) – GAVD

Antwort

2

Sie können Ihre Aktivität Kontext zu Ihrem calss durch das Erstellen eines benutzerdefinierten Konstruktor zum Beispiel senden:

class A 
{ 
Context con; 
public A(Context con) 
    { 
    this.con=con 
    } 
} 



Activity B 
{ 
Context con; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     this.con=getContext(); 
     A = new A(this.con); 
    } 
} 
0

Sie können die globale Anwendungskontext zwischenzuspeichern.

myApplicationContext.getSharedPreferences(NOTIFICATION_ID", MODE_PRIVATE)