2014-10-28 2 views
0

Вот код, который я до сих пор:номер сборщика застревает при установке на 0

  final ImageView plus_button = (ImageView) view.findViewById(R.id.plus_sign); 
      final ImageView minus_button = (ImageView) view.findViewById(R.id.minus_sign); 


      final int[] counter = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 
      final TextView num = (TextView) view.findViewById(R.id.num); 

      plus_button.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View view) { 

        if (plus_button.isPressed()) { 

         if ((counter[0] <= 9) && (counter[0] >= 0)) { 

          counter[0]++; 
          num.setText(Integer.toString(counter[0])); 
         } 
        } 

       } 
      }); 

      minus_button.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View view) { 

        if (minus_button.isPressed()) { 
         counter[0]--; 

         if ((counter[0] <= 9) && (counter[0] >= 0)) { 

          num.setText(Integer.toString(counter[0])); 
         } 
        } 
       } 
      }); 

Это показывает что-то вроде сборщика номер или номер инкрементора/decrementer (?).

Как
- номер +

, где число в диапазоне от 0 до 10. Если вы нажмете на «-», то число декремент, а если нажать на плюс приращений число «+».

Приведенные выше код в основном работает, но я заметил несколько странных вещей:

1) Початкоотделитель пустой на первом, как это: - +

без номера, установленного внутри. Когда я нажимаю «плюс», я хочу, чтобы он показывал 0, но вместо этого он показывает 1. Поэтому я думаю, что он должен сначала показывать 0, но вместо этого он показывает пустое. Не знаете почему?

2) Я могу увеличивать весь путь до 10, нажимая знак «плюс», начиная с 1, но когда я спускаюсь до нуля, я не могу вернуться к списку номеров. Я не уверен, почему это происходит?

редактировать: Это происходит, если я нажму на кнопку минус два раза после того, как я ударил 0.

3) Как я могу получить конкретный номер, который подборщика установлен на от того, как у меня это закодировано выше? Напр. если пользователь устанавливает его на 5, как я могу узнать, что пользователь установил сборщик на 5? Есть ли способ узнать?

EDIT: Вот недавно отредактированный код:

final ImageView plus_button = (ImageView) view.findViewById(R.id.plus_sign); 
       final ImageView minus_button = (ImageView) view.findViewById(R.id.minus_sign); 


       final int[] counter = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 
       final TextView num = (TextView) view.findViewById(R.id.num); 
       num.setText(Integer.toString(counter[0])); 

       plus_button.setOnClickListener(new View.OnClickListener() { 
        public void onClick(View view) { 

         if (plus_button.isPressed()) { 

          if ((counter[0] <= 9) && (counter[0] >= 0)) { 

           counter[0]++; 
           num.setText(Integer.toString(counter[0])); 
           System.out.println(num.getText().toString()); 
          } 
         } 

        } 
       }); 

       minus_button.setOnClickListener(new View.OnClickListener() { 
        public void onClick(View view) { 

         if (minus_button.isPressed()) { 

          if ((counter[0] <= 9) && (counter[0] >= 0)) { 
           counter[0]--; 
           num.setText(Integer.toString(counter[0])); 
           System.out.println(num.getText().toString()); 
          } 
         } 
        } 
       }); 

ответ

1

1) начинается так, как это делает, потому что ты ничего для этого не установлен на первом. Вы можете сделать что-то вроде num.setText (Integer.toString (counter [0])); сразу после вызова его по его идентификатору. Обратите внимание, что вы увеличиваете или уменьшаете только текст при добавлении или уменьшении

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

3) Не уверен, что вы имеете в виду, но вы можете сделать num.getText(). ToString() и разобрать его на целое или сохранить его таким образом. Это даст вам то, что находится на вашем текстовом изображении, когда вы его назовете.

+0

Можете ли вы подробно остановиться на номере 2 или привести мне пример? Номер 3 работает, спасибо. – Euridice01

+1

Вы вычитаете, только если нажата кнопка минус, вы не считаете, что она может быть равна нулю. Предположим, что он установлен в 0, вы нажимаете, и он установлен в -1, но следующий, если в вашем методе «минус» говорит, что если num> = 0, то он должен отображаться. Просто поставьте счетчик [0] -; предложение внутри вашего второго, если. Таким образом, ваш счетчик переменных [0] не сможет иметь значение меньше нуля – sbacaro

+0

ohhh Я вижу. Спасибо, лол: D Я этого раньше не заметил, но теперь он показывает -1. Я не хочу видеть -1, но только 0. – Euridice01

Смежные вопросы