检查If - else块中的条件

时间:2014-02-07 09:31:27

标签: java android

在我的程序中,我想在将图像上传到服务器时显示三种状态,状态为:

  1. 上传完成

  2. 上传失败

  3. 已存在

  4. 我仍然在代码中实现了上传完成和失败条件,但不知道我需要在If-else块中实现已经存在的位置和方式。

        String strStatusID = "0";
        String strError = "";
    
        try {      
    
        JSONObject c = new JSONObject(resServer);
        strStatusID = c.getString("StatusID");
        strError = c.getString("Message");
        } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }
    
        // Prepare Status
        if(strStatusID.equals("0"))
        {   
            status.setImageResource(R.drawable.upload_failed);
            ImageButton btnUpload = (ImageButton) v.findViewById(R.id.btnUpload);
            btnUpload.setEnabled(true);
        }
        else
        {
            status.setImageResource(R.drawable.upload_done);
        }
    
        }
    

    编辑代码: -

        String strStatusID = "0" ;
        String strError = "" ;
    
            try {      
    
            JSONObject c = new JSONObject(resServer);
            strStatusID = c.getString("StatusID");
            strError = c.getString("Message");
            } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            }
    
    
            if(strStatusID.equals("0"))
            {   
                status.setImageResource(R.drawable.upload_failed);
                ImageButton btnUpload = (ImageButton) v.findViewById(R.id.btnUpload);
                btnUpload.setEnabled(true);
            }
            else if((strStatusID.equals("1"))   // Syntax error on token ")", ) expected after this token
            {
              status.setImageResource(R.drawable.upload_done);
            }
            else
            {
                status.setImageResource(R.drawable.already_exist);
            }
    
            }
    

5 个答案:

答案 0 :(得分:2)

只需使用else if

即可
if(strStatusID.equals("0"){
    ...
} 
else if(strStatusID.equals("1")){
    ...
} 
else {
   ...
}

如果您使用enum作为状态和switch声明,那么您的代码会更好。

答案 1 :(得分:1)

if(strStatusID.equals("1")){
// Upload Done
}else if(strStatusID.equals("2")){
//  Upload Failed
}else{
// Already Exist or any other value
}

答案 2 :(得分:1)

 if(strStatusID.equals("0"))
                 {   
                    status.setImageResource(R.drawable.upload_failed);
                    ImageButton btnUpload = (ImageButton) v.findViewById(R.id.btnUpload);
                    btnUpload.setEnabled(true);
                 }
                 else if((strStatusID.equals("1")
                {
                  status.setImageResource(R.drawable.alreadyexist);
                }
                else
                {
                    status.setImageResource(R.drawable.upload_done);
                }

答案 3 :(得分:1)

而不是 if else 条件使用 if elseif 条件

 String strStatusID = "0";
    String strError = "";

    try {      

    JSONObject c = new JSONObject(resServer);
    strStatusID = c.getString("StatusID");
    strError = c.getString("Message");
    } catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    // Prepare Status
    if(strStatusID.equals("0"))
    {   
        status.setImageResource(R.drawable.upload_failed);
        ImageButton btnUpload = (ImageButton) v.findViewById(R.id.btnUpload);
        btnUpload.setEnabled(true);
    }
    else   if(strStatusID.equals("1"))
    {
        status.setImageResource(R.drawable.upload_done);
    }
else{

}
    }

答案 4 :(得分:1)

已经存在必须是服务器的答案。 您可以使用不同的解决方案:

if (strStatusID.equals("0")){
    //upload failed
    ....
}else{
    //upload success
    if (strStatusID.equals("1")){
         //upload ok
    }else{
         //already exist
    }
}

if (strStatusID.equals("0")){
    //upload failed
    ....
}else if (strStatusID.equals("1")){
    //upload ok
}else{
    //already exist
}

int status = Integer.parse(strStatusID);
switch(status){
case 0:
    //upload failed
    break;
case 1:
    //upload ok
    break;
case 3:
    //already exist
    break;
default:
    //do nothing
}