2012-03-30 1 views
0

Ich muss Nachricht beim Start der Anwendung, die ich aus der Datenbank abrufen. Ich hole Daten aus der Datenbank und muss sie beim Start der Anwendung anzeigen, aber es zeigt nur die "msg0".
Ich verstehe nicht, wo das Problem in meinem Code ist. Bitte geben Sie mir einen Hinweis und eine Referenz.
Hier ist mein Code als Referenz ..Meesage nicht beim Start der Anwendung angezeigt?

Random r = new Random(); 
    SharedPreferences pref = getPreferences(Context.MODE_PRIVATE); 
    Editor ed =pref.edit(); 
    final List<ObjectiveWiseQuestion> LocWiseProfile= db.getAllTipsNTricks(); 

    for (final ObjectiveWiseQuestion cn : LocWiseProfile) 
    { 
    for(i=0;i<=counter;i++) 
    { 
     ed.putString("i",cn.getTips()); 
     // ed.putString("0",cn.getTips()); 
    } 

     ed.commit(); 
    } 
    String msg = pref.getString(r.nextInt(i)+"", "none"); 
    Toast.makeText(this, msg, Toast.LENGTH_LONG).show(); 
} 
catch(Exception e) 
{ 
    e.printStackTrace(); 
} 

Vielen Dank im Voraus ....

Antwort

0

Wenn ich nicht falsch bin, dann sind Sie über das Schreiben von Werten gemeinsamen Einstellungseditor.

Es soll,

for(i=0;i<=counter;i++) 
    { 
     ed.putString(""+i,cn.getTips()); 
     // ed.putString("0",cn.getTips()); 
    } 
+0

es funktioniert nicht Bruder .... –

0

Werte überschrieben werden, so user370305 Weg folgen, aber es gibt einige Probleme nach wie vor vorhanden ist, geht es aufgrund von Werten von Präferenzen zu holen, als String msg = pref.getString (r.NextInt (i) + "", "keine"); außerhalb der inneren for-Schleife, also nehme ich an, dass ich außerhalb von for-Schleife auch erklärt wurde, die nirgends geändert wird, so äußere Schleife zeigt nur i-Wert, der außerhalb des Blocks deklariert wird, der Ihnen zur Verfügung gestellt wurde, was ich denke ist Feld der Klasse

+0

ed.putString ("i", cn.getTips()); Hier bin ich Schlüssel und cn.getTips() ist die Werte für den gleichen Schlüssel i für jedes Mal in for-Schleife. – user370305