2013-09-18 1 views
0

Мне нужно подсчитать количество кликов и отобразить число нажатий на textView2, а мой код просто отображает номер 4. Я использовал цикл while, чтобы проверить количество кликов.попробуйте подсчитать onclick android

public void Clicks(View v){ 
    final TextView answerLabel = (TextView)findViewById(R.id.textView1); //show text from answer variable. 
    TextView count = (TextView) findViewById(R.id.textView2); //display click count. 
    String answer = null; 
    int i = 0; 
    while(i < 5){ // I allow user click just 5 time. 

    switch (v.getId()){ 
     case R.id.button1 : 
      answer= "ROCK"; 
      answerLabel.setText(answer); 
      count.setText(String.valueOf(i)); 
      i++; 
     break; 
     case R.id.button2 : 
     answer = "SCISSOR"; 
     answerLabel.setText(answer); 
     count.setText(String.valueOf(i)); 
     i++; 
     break; 
     case R.id.button3 : 
     answer = "PAPER"; 
     answerLabel.setText(answer); 
     count.setText(String.valueOf(i)); 
     i++; 
     break; 
     } 
    } 
} 

Как его правильно отобразить?

ответ

0

вы должны положить int i = 0; вне OnClick на уровне класса и запустить его на 1

public int i = 1; 

затем в OnClick использовать, если заявление

if(i <= 5) 
{ 
switch (v.getId()){ 
     case R.id.button1 : 
      answer= "ROCK"; 
      answerLabel.setText(answer); 
      count.setText(String.valueOf(i)); 
      i++; 
     break; 
     case R.id.button2 : 
     answer = "SCISSOR"; 
     answerLabel.setText(answer); 
     count.setText(String.valueOf(i)); 
     i++; 
     break; 
     case R.id.button3 : 
     answer = "PAPER"; 
     answerLabel.setText(answer); 
     count.setText(String.valueOf(i)); 
     i++; 
     break; 
     } 
} 
+0

это работает для меня, результат вроде этого мне нужно. – bombaye125

+0

рад оказать помощь :) – JRowan

0

изменить перерыв, чтобы продолжить; потому что break остановит цикл

, но в этом случае вы увеличиваете каждый раз, когда человек нажимает.

, так что вам не нужна петля вообще.

Вам нужно, если это условие! например, если (i < 5) и сделать i глобальную переменную

+0

@JangJoo Мне нужно ограничить щелчок от пользователя и получить значение от кнопки к другой функции, если я хочу захватить значение 5 перед следующей функцией Должен ли я использовать условие «если» или «переключиться»? – bombaye125

0

Поиск метода вы OnCreate(), где надувается макет и попробовать это:

@Override 
public void onCreate(Bundle savedInstanceState) { 
... 

Button button1 = (Button) findViewById(R.id.button1); 
Button button2 = (Button) findViewById(R.id.button2); 
Button button3 = (Button) findViewById(R.id.button3); 
int i =0; 
button1.setOnClickListener(new View.OnClickListener() {   
     public void onClick(View v) { 
      answer= "ROCK"; 
          answerLabel.setText(answer); 
          count.setText(String.valueOf(i)); 
          i++; 
     } 
    }); 
button2.setOnClickListener(new View.OnClickListener() {   
     public void onClick(View v) { 
      answer= "SCISSOR"; 
          answerLabel.setText(answer); 
          count.setText(String.valueOf(i)); 
          i++; 
     } 
    }); 
button3.setOnClickListener(new View.OnClickListener() {   
     public void onClick(View v) { 
      answer= "PAPER"; 
          answerLabel.setText(answer); 
          count.setText(String.valueOf(i)); 
          i++; 
     } 
    }); 
+0

Я пытаюсь это сделать, но я понятия не имею, как отправить «ответ» на другую функцию, и я думаю, что этот код не может ограничивать клики от пользователя. так что вы можете мне предложить? – bombaye125