Имеет то же значение при использовании условий для вычитания - PullRequest
0 голосов
/ 26 июня 2018
    for (int i = 0; i < listAnswers2.size(); i++) {
        View view = listAnswers2.get(i).getView();
        allWidth += (float) view.getWidth() + 20F;

        if(view == listAnswers2.getFirst().getView()) {
            Log.e("allWidth 2", String.valueOf(allWidth));
        } else {
            allWidth -= (float) view.getWidth() + 20F;
            Log.e("allWidth", String.valueOf(allWidth));
        }
    }

У меня есть случай, когда приведенный выше код имеет то же значение для своего вывода, как это сгенерированное значение:

227,0

227,0

227,0

Если я не использую условия, подобные приведенному ниже коду:

    for (int i = 0; i < listAnswers2.size(); i++) {
        View view = listAnswers2.get(i).getView();
        allWidth += (float) view.getWidth() + 20F;

        Log.e("allWidth", String.valueOf(allWidth));
    }

имеет следующий вывод:

227,0

394,0

667,0

Но результат был не тем, что я хотел, а значение, которое я хотел, было таким:

* * 1 022 0,0

227,0

394,0

Кто-нибудь может предложить решение для этого случая? Или есть альтернатива этому делу без использования условия? Пожалуйста, помогите мне

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Учитывая, что allWidth - это число с плавающей точкой, начинающееся с 0.0 , ваш код может выглядеть примерно так:

float allWidth = 0.0;
for (int i = 0; i < listAnswers2.size(); i++) {
    Log.e("allWidth", String.valueOf(allWidth));
    View view = listAnswers2.get(i).getView();
    allWidth += (float) view.getWidth() + 20F;
}
0 голосов
/ 26 июня 2018

Попробуйте это

for (int i = 0; i < listAnswers2.size(); i++) {
    if(view == listAnswers2.getFirst().getView()) {
        Log.e("allWidth 2", String.valueOf(allWidth));
     } else {
           allWidth -= (float) view.getWidth() + 20F;
           Log.e("allWidth", String.valueOf(allWidth));
        }

      View view = listAnswers2.get(i).getView();
      allWidth += (float) view.getWidth() + 20F;

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...