2012-03-13 2 views
0

Я чувствую себя глупым, чтобы спросить об этом, но я боролся с этим в течение дня, и я не могу заставить его работать.Android: Int остается тем же

Итак, моя проблема заключается в том, что я хочу продолжать добавлять 1 к и целое число и заставить его идти;

1+1=2 
2+1=3 

То, что он продолжает обновлять Integer, у меня есть это сейчас;

int val = 1; 
int g = 1; 

val = g + val; 

Но он продолжает говорить о своем 2, как прийти?

Спасибо.

+0

Вам необходимо предоставить более полный пример - то, что вы дали здесь, недостаточно для воспроизведения проблемы. –

+2

Только потому, что 1 + 1 = 2. Нет другой причины. –

+0

Пожалуйста, отправьте всю функцию. – Woot4Moo

ответ

3

Я предполагаю, что вы поместили весь свой код в обработчик кликов. Вместо этого поместите объявление/инициализацию переменной на уровне класса и только код добавления в обработчик кликов. Грубый код выглядит следующим образом:

public YourActivity extends Activity { 
    int val = 1; 
    int g = 1; 

    @Override 
    protected void onCreate (Bundle savedInstanceState) { 
     ... //find button in here 
     button.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       val = g + val; 
      } 
     }); 
    } 
} 
2

Потому что вы продолжаете устанавливать его в 1. Инициализируйте его вне цикла.

+4

Если этот психический отладчик окажется правдой, вы заслуживаете медали :) – AakashM

+0

Это длинный выстрел! – assylias

0
int val = 1; 
int g = 1; 

Следующая строка:

val = g + val; 

поэтому эквивалентно

val = 1 + 1; 

что эквивалентно

val = 2; 

Не уверен, что можно было бы ожидать здесь ...

0
int val = 1; int g = 1; val = g + val; 

будет всегда вычисляться 2. Потому, что происходит, вы берете значение в g, которая 1 и значение в val которое 1. Это дает сумму 2. Затем взять 2 и назначить его на переменная val (которая ранее была инициализирована до 1).

1 + 1 всегда будет 2 (в Integer математике)

0

Так что моя проблема, я хочу, чтобы добавлять 1 к и целое и сделать его как;

1+1=2 
2+1=3 

Я предполагаю, что вы хотите сделать что-то вроде этого, чтобы произвести свой вывод заданное число раз.

int timesToLoop = 10; 
int summedUp = 0; 
for (int i=0; i < timesToLoop; i++) 
{ 
    summedUp = i + 1; 
    System.out.println(i + " + " + "1 = " + summedUp); 
} 
+0

Нет, я пытаюсь сделать число автоматического увеличения каждый раз, когда нажимаю кнопку –

+0

@Lars Wesseling так ... почему бы не увеличить число при нажатии кнопок? – bbedward