2012-06-28 68 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