2016-07-09 7 views
0

hallo ich bin sehr neu zu codieren in android studio so hier ist das szenario ich habe diesen benutzer, der sich anmeldet dann ich bekomme seinen benutzername ich muss den benutzer benutzername speichern, weil ich brauchte zu verwenden es auf den anderen Seiten in meinem Projekt so, was ich war wie diesrichtig verwenden session zum speichern einer variablen android studio

public user getLOGusr(String uname, String pass) 
{ 
    SQLiteDatabase db = this.getReadableDatabase(); 

    String select = "SELECT uid, username, email FROM " + TABLE_USRS + " WHERE " + KEY_NAME + " = ? AND " + KEY_PASS + " = ?"; 

    Cursor cursor = db.rawQuery(select, new String[]{uname, pass}); 

    user usr = new user(); 
    if(cursor != null && cursor.moveToFirst()) 
    { 
     cursor.moveToFirst(); 
     usr.setUsrid(Integer.parseInt(cursor.getString(0))); 
     usr.setuName(cursor.getString(1)); 
     usr.seteAddress(cursor.getString(2)); 

     PreferenceManager pm = PreferenceManager.getDefaultSharedPrefs(this); 
     SharedPreferences.Editor edit = pm.edit(); 
     edit.putString("usrnm", cursor.getString(1)); 
     edit.commit(); 

     cursor.close(); 
    } 
    else 
    { 
     usr = null; 
    } 

    return usr; 
} 

dies die Funktion in meinem dbhandler ist das Problem auf dem .getDefaultSharedPrefs Teil ist und die .edit() sagen kann Methode etwas tun tat nur das Zeug nicht löst im Versuch, zu tun ist, den Benutzernamen in eine Sitzung zu stellen, jede Hilfe? Vielen Dank im Advance!

+0

Sie müssen [Android Shared Einstellungen Beispiel] (http://stackoverflow.com/questions/23024831/android-shared-preferences-example) sehen. Bitte versuchen Sie Dinge auf SO zu suchen, bevor Sie fragen .. !! –

Antwort

0

Einstellwerte in Präferenz:

SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit(); 
edit.putString("usrnm", cursor.getString(1)); 
edit.commit(); 

Abrufen von Daten aus preference:

SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
String restoredText = prefs.getString("text", null); 
if (restoredText != null) { 
    String name = prefs.getString("usrnm", "No name defined");//"No name defined" is the default value. 
} 

Reference here

+0

Was bedeutet 'MY_PERFS_NAME'? – BourneShady

+0

Erstellen Sie eine statische Variable wie public static String MY_PREFS_NAME = "Ihr_Name". Gib den Namen, den du willst. Dies dient zur Identifizierung der Präferenz. –

0

getDefaultSharedPreference nimmt Kontextobjekt als Parameter. Indem Sie das übergeben, übergeben Sie die Referenz an Ihren dbhandler und nicht an den Kontext.

Verwandte Themen