2017-01-26 1 views
1

나는 안드로이드를 배우며 기본 편집 등을 알고있다. 한 프리랜서가 개발 한 응용 프로그램이 하나있다. 우리는 Retrofit 2.0을 사용하여 일부 작업을 수행하고 있습니다. 내 기능 중 하나가 아래와 같습니다.개량 성공 사례

private void serverCall() { 
    progressDialog = new ProgressDialog(WithdrawActivity.this); 
    progressDialog.setMessage("Please wait..."); 
    progressDialog.setCancelable(false); 
    progressDialog.show(); 


    HashMap<String, String> payload = new HashMap<>(); 
    String uid = settings.getString("userid", ""); 
    payload.put("UID", uid); 
    payload.put("Name", etName.getText().toString().trim()); 
    payload.put("MobileNumber", etPaytmMobileNumber.getText().toString().trim()); 
    payload.put("Amount", etAmount.getText().toString().trim()); 

    // NetworkApiInterface apiClient = NetworkApiClient.getClient().create(NetworkApiInterface.class); 
    NetworkApiInterface apiClient = retrofit.create(NetworkApiInterface.class); 
    Call<WithdrawalCreditResponseModel> call = apiClient.withdrawalCredit(payload); 
    call.enqueue(new Callback<WithdrawalCreditResponseModel>() { 
     @Override 
     public void onResponse(Call<WithdrawalCreditResponseModel> call, Response<WithdrawalCreditResponseModel> response) { 
      if (response != null) { 
       WithdrawalCreditResponseModel responseModel = response.body(); 
       if (responseModel != null) { 
        Log.d(TAG, new Gson().toJson(responseModel)); 
        if (!TextUtils.isEmpty(responseModel.getMsg())) { 
         Toast.makeText(WithdrawActivity.this, responseModel.getMsg(), Toast.LENGTH_SHORT).show(); 
        } 
        if (responseModel.isSuccess()) { 
         setResult(RESULT_OK); 
         finish(); 
         overridePendingTransition(R.anim.fade_in, R.anim.fade_out); 
        } 
       } 
      } 
      if (progressDialog != null) { 
       progressDialog.dismiss(); 
      } 

     } 

     @Override 
     public void onFailure(Call<WithdrawalCreditResponseModel> call, Throwable t) { 
      t.printStackTrace(); 
      Log.e(TAG, t.getCause() + ""); 
      if (progressDialog != null) { 
       progressDialog.dismiss(); 
      } 
     } 
    }); 

} 

통화가 성공하면 쇼를 표시하고 싶습니다. 나는 그것을 여러 장소에 집어 넣으려고했지만 그것은 보이지 않았다. 나는이 응답 모델

public class WithdrawalCreditResponseModel implements Serializable { 

@SerializedName("msg") 
@Expose 
private String msg; 
@SerializedName("success") 
@Expose 
private boolean success; 

public String getMsg() { 
    return msg; 
} 

public void setMsg(String msg) { 
    this.msg = msg; 
} 

public boolean isSuccess() { 
    return success; 
} 

public void setSuccess(boolean success) { 
    this.success = success; 
} 

}

그러나 그 표시되지 아무거나이 라인 등

if (responseModel.isSuccess()) { 
         setResult(RESULT_OK); 
         Toast.makeText(WithdrawActivity.this, "This Toast Need toShow.", Toast.LENGTH_SHORT).show(); 
         finish(); 
         overridePendingTransition(R.anim.fade_in, R.anim.fade_out); 
        } 

후 넣어 노력했다. 그러나 내 과제는 아무런 문제없이 완료됩니다. 누군가가 그것을 확인하고 그것에 문제가 무엇인지 말해 줄 수 있습니까? 때문에 모델 클래스의

감사

+0

으로 성공을 찍은는 (코드 setResult을 주석 시도 –

+0

응답을 게시 RESULT_OK); 및 마무리(); overridePendingTransition (R.anim.fade_in, R.anim.fade_out) ;. 토스트가 보이는지 확인하십시오. 그렇다면 setResult 위에 Toast.makeText를 배치하십시오 ... –

+0

토스트가 표시되지 않는 이유는 요청이 완료되는 즉시 활동이 완료되기 때문입니다. 당신이 토스트 코멘트를보고 싶다면 다른 3 개의 라인을 클릭하십시오. – akash93

답변

1

당신이 진정한로 성공을 받고있어하고 부울에있어 확인하면 부울

+0

고맙습니다 ... 서버 측에서 문제가 발생했습니다. 성공 메시지를받지 못했기 때문입니다. 이제 위 코드에서 문제가 해결되지 않았습니다. 감사 –