2012-06-28 73 views
0

我正在寫一個遊戲,我將玩家最高分存儲爲SharedPrefrence。我正在使用這種方法,以便當用戶退出應用程序時,他的最高分數保持不變。直到那時,我已經編碼了一切。我現在想要實現一種方式來在玩家再次玩遊戲時顯示新的最高分。這背後的邏輯是,如果第一個最高分數大於零,則顯示第一個最高分數。然後,當再次玩遊戲時,如果第二個最高分高於第一個最高分,則顯示第二個最高分,否則顯示第一個最高分。在我的腦海中,我會認爲一個簡單的If/else語句就足夠了,但是當聲明第一個變量時,我的問題就會起作用。我寫了下面的代碼,但它似乎不工作。它只顯示新的分數 - 即使它比我不想要的第一個分數低。任何幫助將非常感激。代碼:比較變量

TextView textSavedWeek2ms2_1 = (TextView)findViewById(R.id.ts02); 
SharedPreferences sharedPreferences = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE); 
String strSavedWeek2ms2_1 = sharedPreferences.getString("top_score", ""); 
String topscore = strSavedWeek2ms2_1; 
int topscore1 = Integer.valueOf(topscore); 

if (topscore1 > 0)     
    { 
     textSavedWeek2ms2_1.setText(topscore); 
    } 
    else 
     textSavedWeek2ms2_1.setText("0"); 
    } 

回答

0

這可能是意想不到的:

if (topscore2 > topscore2){ 
0

我認爲你犯了一個錯字....

if (topscore2 > topscore2)     
{ 
    textSavedWeek2ms2_1.setText(topscore); 
} 

所以應該

if (topscore2 > topscore1)     
    { 
     textSavedWeek2ms2_1.setText(topscore); 
    } 
+0

正確。我沒有任何意義。哈哈。這就是我得到整夜的感覺。我更新了代碼以顯示最初的分數。但是我無法弄清楚的是,如果它大於第一個結果,就只能顯示新的結果。有什麼想法嗎?我嘗試了幾種方法,但他們似乎都要求我聲明重置它的值的變量。 – chris