2015-09-09 33 views
-1

我有一個在0-1範圍內的double值。新的高分值應該是兩者中較小的值。基本上是這樣的:如果用戶A以前的高分爲0.6,而他剛剛得到0.4,那麼新的高分應該是0.4。由於我是初學者,請說明性,謝謝。Android - 如何保存雙值高分?

編輯:對不起,我沒有足夠描述足夠,但我想高分被保存,並能夠被再次訪問。所以,如果用戶退出應用並重新訪問,它仍然會顯示高分。

+1

double highScore = Math.min(oldHighScore,newScore); –

+0

請不要將答案作爲評論發佈。 – chepner

+0

@LanceJava對不起,我沒有足夠描述,但我希望得分被保存。所以,當用戶退出應用程序並重新訪問時,高分仍然存在。 – ineedhelp

回答

0

這聽起來像你想使用共享首選項來存儲值爲:http://developer.android.com/training/basics/data-storage/shared-preferences.html,然後當你去保存它時檢查這個。

下面是示例代碼,以便您可以致電writeHighScore(score),它會保存它,如果它是比以前保存的高分低:

void writeHighScore(float score) 
{ 
    if (score < getOldHighScore()) 
    { 
     SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 
     SharedPreferences.Editor editor = sharedPref.edit(); 
     editor.putFloat("highscore", score); 
     editor.commit(); 
    } 
}  


float getOldHighScore() 
{ 
    SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 
    return sharedPref.getFloat("highscore", 1); 
} 

我用了一個浮在這裏而不是雙。如果要存儲具有共享首選項的雙精度型,則需要將其轉換爲長整型數據,如下所示:Can't put double SharedPreferences