2016-07-09 47 views
0

你好我很新的android編碼的工作室所以這裏是我有這個用戶登錄的情況下,然後我得到他的用戶名我需要存儲用戶的用戶名,因爲我需要使用它在我的項目中的其他頁面所以我所做的就是做這樣的事情正確使用會話來存儲變量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; 
} 

這是我dbhandler內部功能的問題是關於.getDefaultSharedPrefs部分和.edit()說不能解析方法的東西我都只是盡力要做的是把用戶名進入會議任何幫助?先進的感謝!在優選

+0

您需要查看[Android Shared preferences示例](http://stackoverflow.com/questions/23024831/android-shared-preferences-example)。在請求之前,請嘗試在SO上搜索事物。 –

回答

0

設定值:

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

從偏好檢索數據:

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

「MY_PERFS_NAME」是什麼意思? – BourneShady

+0

製作一個類似於public static String MY_PREFS_NAME =「your_name」的靜態變量。給你想要的任何名字。這是爲了識別偏好。 –

0

getDefaultSharedPreference需要上下文對象作爲參數。通過傳遞這個參數來傳遞你的dbhandler而不是上下文。