Как сравнить два значения с помощью оператора if в Android

#android #if-statement #retrofit #response

#Android #if-statement #модернизация #ответ

Вопрос:

я пытаюсь сравнить два значения с инструкцией if, когда одно значение получают с сервера с помощью дооснащения, а другое значение получают из другого фрагмента, если используется внешний оператор if, тогда отображаются оба значения переменных, но если я попытаюсь сравнить эти значения с инструкцией if, это не сработает. Оба значения одинаковы, но компилятор переходит к другой части, что я делаю

 public void getUserProfileData() {
    progressBar.setVisibility(View.VISIBLE);
    Api.getClient().getUserProfile(MainActivity.userId, new Callback<UserProfileResponse>() {
                @Override
                public void success(UserProfileResponse userProfileResponse, Response response) {
                    progressBar.setVisibility(View.GONE);
                    userEmail=userProfileResponse.getEmail();
                    String s = "";
                    if (!userProfileResponse.getLandmark().equalsIgnoreCase("")) {
                        s = ", "   userProfileResponse.getLandmark();
                    }
                    if (userProfileResponse.getFlat().equalsIgnoreCase("")) {
                        addressCheckBox.setChecked(false);
                        addressCheckBox.setVisibility(View.GONE);
                        fillAddress.setVisibility(View.VISIBLE);
                    }else {
                        address = userProfileResponse.getName()
                                  ", "
                                  userProfileResponse.getFlat()
                                  s
                                  ", "   userProfileResponse.getLocality()
                                  ", "   userProfileResponse.getCity()
                                  ", "   userProfileResponse.getState()
                                  ", "   userProfileResponse.getPincode()
                                  "n"   userProfileResponse.getMobile();
                        addressCheckBox.setText(address);
                        mobileNo = userProfileResponse.getMobile();
                        pinCompare = userProfileResponse.getPincode();


                        //Toast.makeText(getActivity(), pincode   pinCompare, Toast.LENGTH_SHORT).show();



                            if(pincode.equals(pinCompare)){           //is it correct code?
                                Toast.makeText(getActivity(), "correct", Toast.LENGTH_SHORT).show();
                            }else {
                                Toast.makeText(getActivity(), "failed", Toast.LENGTH_SHORT).show();
                            }

                    }
                }
  

Комментарии:

1. Используйте equalsIgnoreCase вместо equals

Ответ №1:

внесите некоторые изменения в этот код..

             if (pincode !=null amp;amp; pinCompare!=null){
            if(pincode.equals(pinCompare)){           //is it correct code?
                Toast.makeText(getActivity(), "correct", Toast.LENGTH_SHORT).show();
            }else {
                Toast.makeText(getActivity(), "failed", Toast.LENGTH_SHORT).show();
            }else { //do somthing }
        }
  

Комментарии:

1. Вы можете пропустить pinCompare != null ; equals обрабатывает null параметр.

2. здесь хорошо пропущен и обновлен код, тот же запрос для этого, значение pincode и pin compareв этом фрагменте одинаковы, но в метод equals теперь не вводится соответствие, пока тост снова не покажет «сбой», я не могу понять, что я делаю..

3. в ответ вы получаете vale pin compareесли возможно, у него есть некоторое время null. в противном случае вы можете удалить условие if.

4. @ Infusion Analytics, итак, если я удалю оператор if, то какое условие я использую, как сравнить значение пинкода и значение пинкомпара.