-3

我有 8 个数字存储在我的共享偏好中,我试图弄清楚如何识别最大的数字并在文本视图中显示?

编辑:

private void showKing(){
    SharedPreferences peepsScores = PreferenceManager.getDefaultSharedPreferences(this);
    int userScore1 = peepsScores.getInt("userScore1",222);
    int userScore2 = peepsScores.getInt("userScore2",222);
    int userScore3 = peepsScores.getInt("userScore3",222);
    int userScore4 = peepsScores.getInt("userScore4",222);
    int userScore5 = peepsScores.getInt("userScore5",222);
    int userScore6 = peepsScores.getInt("userScore6",222);
    int userScore7 = peepsScores.getInt("userScore7",222);
    int userScore8 = peepsScores.getInt("userScore8",222);


    String pDName1 =  pName1.getText().toString();
    String pDName2 =  pName2.getText().toString();
    String pDName3 =  pName3.getText().toString();
    String pDName4 =  pName4.getText().toString();
    String pDName5 =  pName5.getText().toString();
    String pDName6 =  pName6.getText().toString();
    String pDName7 =  pName7.getText().toString();
    String pDName8 =  pName8.getText().toString();

    if(userScore1>userScore2+userScore3+userScore4+userScore5+userScore6+userScore7+userScore8){
        dPresident.setText(pDName1);
    }
        else{

    if(userScore2>userScore1+userScore3+userScore4+userScore5+userScore6+userScore7+userScore8){
        dPresident.setText(pDName2);
    }
        else{

    if(userScore3>userScore2+userScore1+userScore4+userScore5+userScore6+userScore7+userScore8){
        dPresident.setText(pDName3);
    }
        else{

    if(userScore4>userScore2+userScore3+userScore1+userScore5+userScore6+userScore7+userScore8){
        dPresident.setText(pDName4);
    }
        else{

    if(userScore5>userScore2+userScore3+userScore4+userScore1+userScore6+userScore7+userScore8){
        dPresident.setText(pDName5);
    }
        else{

    if(userScore6>userScore2+userScore3+userScore4+userScore5+userScore1+userScore7+userScore8){
        dPresident.setText(pDName6);
    }
        else{

    if(userScore7>userScore2+userScore3+userScore4+userScore5+userScore6+userScore1+userScore8){
        dPresident.setText(pDName7);
    }
        else{

    if(userScore8>userScore2++userScore3&userScore4&&userScore5+userScore6+userScore7+userScore1){
        dPresident.setText(pDName8);

    }
    }}}}}}}
}

在数字 8 中,我正在尝试其他符号,而日食说不

4

3 回答 3

3

您可以执行以下操作:

//Obtain highest Score (Select maximum value)
int highestScore = Math.max(userScore1 ,  
   Math.max(userScore2 ,  
      Math.max(userScore3 ,  
           Math.max(userScore4 , 
               Math.max(userScore5 ,  
                 Math.max(userScore6 , 
                     Math.max(userScore7 , userScore8)))))));

// set text
dPresident.setText("" + highestScore);
于 2012-12-30T00:19:38.683 回答
1

如果我自己可以这么说,那真是太优雅了:P

int maxnumber = 0;

for (int i = 1; i >= 8; i++) {
            maxnumber = Math.max(peepsScores.getInt("userScore" + i, 0), maxnumber);
        }

现在maxnumber将等于最高数字。

于 2012-12-30T00:34:12.177 回答
-1

对不起,我想多了:

if(userScore1 > userScore2 + userScore3 + userScore4 + userScore5 + userScore6 + userScore7 + userScore8) {
    dPresident.setText("" + userScore1);
于 2012-12-29T07:28:06.460 回答