我是android開發的小菜鳥,我正嘗試在onCreate期間使用共享偏好來獲取double的值。但是,我這樣做的代碼似乎只在我第一次重新啓動我的應用程序時才起作用。在此期間,隨後的重新啓動代碼不起作用並跳過我的代碼的if/else部分。這是非常令人沮喪的,因爲如果一次有效,它應該每次都有效。任何幫助是極大的讚賞。爲什麼我的if/else語句不起作用?
public void LoadPreferences(){
double portfoliocurrency1 = null;
SharedPreferences portfoliopreferences = getPreferences(MODE_PRIVATE);
String isuser1created = portfoliopreferences.getString("U1C", "");
if(isuser1created.equals("yes")){
String savedportfolioname = portfoliopreferences.getString("PN1", "");
String saveddenomination = portfoliopreferences.getString("DN1", "");
String savedporfoliocurrency = portfoliopreferences.getString("PC1", ""); //<--Always either "usd", "inr", or "eur".
Log.d("test","SPConLoad=" + savedporfoliocurrency); //<--Returns correct value on every restart.
Log.d("test","USD=" + currencyUSD); //<--Returns correct value on every restart.
Log.d("test","EUR=" + currencyEUR); //<--Returns correct value on every restart.
pn1 = savedportfolioname;
denomination1 = saveddenomination;
if(savedporfoliocurrency=="usd"){ //<--If/else statement only works on first restart. For some reason it is skipped on subsequent restarts.
portfoliocurrency1 = currencyUSD;
Log.d("test","PC1USD=" + currencyUSD); //<--Returns correct value on first restart.
}else if(savedporfoliocurrency=="eur"){
portfoliocurrency1 = currencyEUR;
Log.d("test","PC1EUR=" + currencyEUR); //<--Returns correct value on first restart.
}else if(savedporfoliocurrency=="inr"){
portfoliocurrency1 = currencyINR; //<--Returns correct value on first restart.
}
Log.d("test","PC1onLoad=" + portfoliocurrency1); //<-- Only returns correct value during first restart. Always returns null on subsequent restarts.
}
看看http://stackoverflow.com/questions/767372/java-string-equals-versus – vfcosta