【问题标题】:find the largest int in shared preferences [closed]在共享偏好中找到最大的 int [关闭]
【发布时间】:2012-12-29 07:10:36
【问题描述】:

我的共享偏好中存储了 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 中,我尝试了其他符号,但 eclipse 拒绝

【问题讨论】:

  • 嗯....有什么问题?您可以简单地比较它们。
  • Hmmmm ftech 每条记录并以简单的逻辑方式进行比较

标签: android int sharedpreferences


【解决方案1】:

您可以执行以下操作:

//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);

【讨论】:

  • 像梦中的末日骑士一样工作,谢谢
【解决方案2】:

如果我自己可以这么说,那真是令人难以置信的优雅:P

int maxnumber = 0;

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

现在maxnumber 将等于最大数字。

【讨论】:

    【解决方案3】:

    对不起,我想多了:

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

    【讨论】:

    • 现在是将其标记为已接受答案的好时机
    • @Cole。这远非正确答案。他将一个数字与其他数字的总和进行了比较。而不是将它们进行最大比较。 :|
    • 是的,我刚刚运行它并发现我尝试将 and 符号放在那里和其他东西然后我将它转换为所有它们到一个数组并使用 findLargest 方法但我不知道如何让数组适配器进行编辑并发布我的完整方法
    • @Doomsknight 好吧,我的总体想法是,如果 OP 回答了他自己的问题,请告诉他在不检查的情况下标记它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 2021-10-11
    • 2014-07-29
    • 2019-03-20
    • 1970-01-01
    相关资源
    最近更新 更多