2013-08-20 68 views
0

這是怎麼回事我正在開發Android遊戲,我有一個問題,我沒有在互聯網上找到我想要保存高分與共享喜好,那就是代碼:Android保存得分

Play Class : 
     SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE); 
     Editor edit = prefs.edit(); 
     edit.putInt("key", score); 
     edit.commit(); 
     Toast.makeText(getApplicationContext(), "SAVED", Toast.LENGTH_LONG).show(); 

     Intent it = new Intent(getApplicationContext(),HighScore.class); 
     startActivity(it); 

這是高分榜代碼:

highscore = (TextView) findViewById(R.id.highscore_int); 
SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", 
                Context.MODE_PRIVATE); 
int score = prefs.getInt("key", 0); //0 is the default value 
highscore.setText(""+score); 

這工作不錯,但它保存了所有的分數,甚至它比以前的要小。只有比以前更大的分數才能保存分數。我怎樣才能做到這一點? PS:對不起,我的英語,我不知道如何突出代碼:(

+2

你跑,你不能在互聯網上發現一個問題 - 你嘗試搜索「如何確定哪個數字是兩者中較大的一個?」,因爲這就是你需要做的事情,請檢查當前分數與共享偏好分數之間的差距,然後選擇較大的分數 – Shark

+0

是的,但是如何檢查以前的數字I用一個名字保存分數 – Developer

+1

首先比較分數如果新分數大於保存的分數,則更改它;否則什麼都不做 – Tugrul

回答

8
SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE); 
int oldScore = prefs.getInt("key", 0); 
if(newScore > oldScore){ 
    Editor edit = prefs.edit(); 
    edit.putInt("key", newScore); 
    edit.commit(); 
} 

看到

+0

作品很好,非常感謝你 – Developer