2015-12-02 8 views
-1

первый Вопрос: Question_oceans см. Код ниже. пытаясь иметь пользователь к сведению, что он не может получить «Prevoius» вопрос, когда кнопка нажата, потому что это был первым вопрос»им получает сообщение об ошибке.Ошибка Android Back Button

private Question[] mQuestionBank = new Question[]{ 
     new Question(R.string.question_oceans, true), 
     new Question(R.string.question_mideast, false), 
     new Question(R.string.question_africa, false), 
     new Question(R.string.question_americas, true), 
     new Question(R.string.question_asia, true), 
}; 

private int mCurrentIndex = 0; 

private void updateQuestion() { 
    int question = mQuestionBank[mCurrentIndex].getTextResId(); 
    mQuestionTextView.setText(question); 
} 

private void lastQuestion(boolean userPressedPrevious) { 
    boolean answerIsYes = mQuestionBank[mCurrentIndex].isAnswerTrue(); 

    int messageQuesId = 0; 

    if (userPressedPrevious == answerIsYes) { 
     messageQuesId = R.string.not_previous; 
    } else { 
     updateQuestion(); 
    } 

    Toast.makeText(this, messageQuesId, Toast.LENGTH_SHORT).show(); 
} 

private void checkAnswer(boolean userPressedTrue) { 
    boolean answerIsTrue = mQuestionBank[mCurrentIndex].isAnswerTrue(); 

    int messageResId = 0; 

    if (userPressedTrue == answerIsTrue) { 
     messageResId = R.string.correct_toast; 
    } else { 
     messageResId = R.string.incorrect_toast; 
    } 

    Toast.makeText(this, messageResId, Toast.LENGTH_SHORT).show(); 
} 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_quiz); 

    mQuestionTextView = (TextView) findViewById(R.id.question_text_view); 

    mTrueButton = (Button) findViewById(R.id.true_button); 
    mTrueButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      checkAnswer(true); 
     } 

    }); 

    mFalseButton = (Button) findViewById(R.id.false_button); 
    mFalseButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      checkAnswer(false); 
     } 
    }); 

    mPreviousButton = (Button) findViewById(R.id.previous_button); 
    mPreviousButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mCurrentIndex = (mCurrentIndex - 1) % mQuestionBank.length; 
      updateQuestion(); 
      lastQuestion(true); 
     } 
    }); 
    updateQuestion(); 

    mNextButton = (Button) findViewById(R.id.next_button); 
    mNextButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mCurrentIndex = (mCurrentIndex + 1) % mQuestionBank.length; 
      updateQuestion(); 
     } 
    }); 

    updateQuestion(); 
+0

Добро пожаловать в SO. Когда вы сталкиваетесь пожалуйста, сообщите нам, что говорит об ошибке, и в какой строке оно происходит. – LarsH

+0

Пожалуйста, опубликуйте сообщение об ошибке, выведенное из 'LogCat' - это сделает отладку намного проще. – PPartisan

+0

AndroidRuntime: FATAL EXCEPTION: main Процесс: com.bignerdranch.android.geoquiz, android.content.res.Resources $ NotFoundException: Идентификатор ресурса строки # 0x0 atandroid.content.res.Resources.getText (Resources.java:1334) atandroid.widget.Toast .makeText (Toast.java:379) –

ответ

0

Может быть, вы должны использовать попытку поймать заявление. Если вы запустите его опять же, вы, вероятно, увидите ошибку logcat, сообщающую вам, в чем проблема. В catch вы можете сделать Toast, говоря: «Извините, предыдущий вопрос недоступен». Удачи!

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

  • Нет связанных вопросов^_^