2013-11-15 2 views
1

У меня есть ViewFlipper и следующая кнопка, и я хочу кнопку, чтобы остановить после проверки и выполнения одной команды Я хочу, чтобы остановить проверку остальных, если я нажмите на него еще разсделать, если проверка только одна команда

Моих код:

Next.setOnClickListener(new View.OnClickListener() { 
      ViewFlipper flipp = (ViewFlipper) findViewById(R.id.flipp); 
     @Override 
     public void onClick(View view) { 

      if(flipp.getDisplayedChild() == 0){if(qOne.isChecked()) {CorrectToast();}else{WrongToast();}} 
      if(flipp.getDisplayedChild() == 1){if(qTwo.isChecked()){CorrectToast();}else{WrongToast();}} 
      if(flipp.getDisplayedChild() == 2){if(qThree.isChecked()){CorrectToast();}else{WrongToast();}} 
      if(flipp.getDisplayedChild() == 3){if(qFour.isChecked()){CorrectToast();}else{WrongToast();}} 
     } 
    }); 

ответ

0

заявление Swith нормально, но я предлагаю этот путь. Это гораздо более читаемо, и вы можете добавлять объекты с меньшим количеством суеты и беспорядка.

public void onClick(View view) { 
    CheckedObject[] objectsToCheck = new CheckedObject[]{qOne,qTwo,qThree,qFour}; 
    int index = flipp.getDisplayedChild(); 
    if (objectsToCheck[index].isChecked()) 
    { 
     CorrectToast(); 
    } 
    else 
    { 
     WrongToast(); 
    } 
} 
+0

Что такое CheckedObject [] stand for? Android Studio не может ее решить. – user2989698

+0

@ user2989698, вы должны заменить CheckedObject соответствующим типом qOne, qTwo и т. Д. JCheckBox [], если вы используете JCheckBox. Я не знаю класс объекта, который вы используете. – holap

1

Вы можете использовать if() { } else if() { } заявление для этой цели, как это

Next.setOnClickListener(new View.OnClickListener() { 
      ViewFlipper flipp = (ViewFlipper) findViewById(R.id.flipp); 
     @Override 
     public void onClick(View view) { 

      if(flipp.getDisplayedChild() == 0){if(qOne.isChecked()) {CorrectToast();}else{WrongToast();}} 
      else if(flipp.getDisplayedChild() == 1){if(qTwo.isChecked()){CorrectToast();}else{WrongToast();}} 
      else if(flipp.getDisplayedChild() == 2){if(qThree.isChecked()){CorrectToast();}else{WrongToast();}} 
      else if(flipp.getDisplayedChild() == 3){if(qFour.isChecked()){CorrectToast();}else{WrongToast();}} 
     } 
    }); 
2

Используйте переключатель заявление вместо:

Next.setOnClickListener(new View.OnClickListener() { 
     ViewFlipper flipp = (ViewFlipper) findViewById(R.id.flipp); 
    @Override 
    public void onClick(View view) { 
     switch(flipp.getDisplayedChild()) { 
      case 0: if(qOne.isChecked()) {CorrectToast();}else{WrongToast();} break; 
      case 1: if(qTwo.isChecked()) {CorrectToast();}else{WrongToast();} break; 
      case 2: if(qThree.isChecked()) {CorrectToast();}else{WrongToast();} break; 
      case 3: if(qFour.isChecked()) {CorrectToast();}else{WrongToast();} break; 
      default: break; //do default action, 
     } 
    } 
Смежные вопросы