2016-04-14 4 views
0

Senden von Daten von sharedpreference Dies ist Schnittstelle für die Kommunikationnicht in der Lage, Daten von sharedPreference im Intra-Fragment abzurufen?

@Override 
public void saveBMI(String d, String r, String f_r) { 
    sharedPreferences=getSharedPreferences("userBMI",Context.MODE_PRIVATE); 
    editor=sharedPreferences.edit(); 
    editor.putString("CheckDate",d); 
    editor.putString("BmiResult",r); 
    editor.putString("BmiWeight",f_r); 
    editor.commit(); 
} 

Diese Methode I-Daten aus dem gemeinsamen Vorliebe zu einem anderen Fragment

@Override 
public void showBMI() { 
    if(sharedPreferences.contains("CheckDate")) 
    { 
     c_d=sharedPreferences.getString("CheckDate",""); 
    } 
    if(sharedPreferences.contains("BmiResult")) 
    { 
     bmi_res=sharedPreferences.getString("BmiResult",""); 
    } 
    if(sharedPreferences.contains("BmiWeight")) 
    { 
     bmi_w=sharedPreferences.getString("BmiWeight",""); 
    } 

//here i want to send the data to another fragment ...??? 



} 
+0

Rufcode in onResume() Methode ... –

+0

die Code @exception Liebhaber – Manish

+0

Gemeinsam genutzte Präferenzen über Singletons Objekt zugegriffen werden soll. Wenn Sie jedes Mal ein neues Objekt erstellen, erhalten Sie keine Daten aus den gemeinsamen Einstellungen. –

Antwort

0

Der Punkt der gemeinsamen Vorlieben ist, dass Sie das Senden verwenden können, um für greifen Sie von überall darauf zu, also erhalten Sie im anderen Fragment nur die gewünschten Daten.

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); 
prefs.getString("CheckDate",""); 

Wenn Ihre Frage ist, wie Daten von einem Fragment zum anderen senden ich mit der Methode newInstance empfehlen, wenn ein Fragment zu schaffen und die Argumente dort vorbei.

public static GenericAreaFragment newInstance(String color, String title, String areaId, boolean isArea) { 
    GenericAreaFragment frag = new GenericAreaFragment(); 
    Bundle args = new Bundle(); 
    args.putString(COLOR, color); 
    args.putString(TITLE, title); 
    args.putString(AREA_ID, areaId); 
    args.putBoolean(ISAREA, isArea); 
    frag.setArguments(args); 
    return frag; 
} 

Dann können Sie die Argumente mit bekommen:

getArguments().getBoolean(ISAREA); // or getString, etc 

Viele Erklärungen in der Android-Dokumentation sind zusammen mit, wie durch Aktivitäten und Fragmente zu kommunizieren.

http://developer.android.com/intl/es/reference/android/app/Fragment.html