找到共享首选项中最大的int

时间:2012-12-29 07:10:37

标签: android int sharedpreferences

我在共享的prefrences中存储了8个数字我试图找出如何重新签名哪个是最大的并在textview中显示?

编辑:

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号我正在尝试其他符号而eclipse则说没有

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

如果我自己可以这样说,那就太优雅了:P

int maxnumber = 0;

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

现在maxnumber将等于最高数字。

答案 2 :(得分:-1)

对不起,我正在思考它:

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