Обновление arrayIndex onClick кнопки вызывает проблемы - PullRequest
0 голосов
/ 14 сентября 2011

Я реализую тест, и здесь у меня есть метод для моей кнопки:

public  void playquiz(final int arrayIndex) {

setContentView(R.layout.quiz);

next = (Button) findViewById(R.id.nextBtn);

next.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
            if (arrayIndex == TourDescription.currentTour.getTriviaArray().size()) {

                    int totalpoints = correctAnswerCount*10;
                    Intent scoreintent = new Intent(TriviaQuiz.this,ScoreBoard.class);
                    startActivity(scoreintent);
            }   
            else
            {
                   playquiz(arrayIndex+1);
            }

}

Я пытаюсь сделать следующее: внутри метода я загружаю другой макет и назначаю кнопку для кнопки.в этом макете.

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

Но если мне нравится playquiz (arrayIndex + 1);, он просит меня объявить arrayIndex как final, почему это так?

И даже тогда он не ведет себя точнокак и должно быть.

if (arrayIndex == TourDescription.currentTour.getTriviaArray (). size ()) внутри onClick не происходит

Любое предложение?

1 Ответ

1 голос
/ 14 сентября 2011
But if I do like playquiz(arrayIndex+1);, it asks me to declare the arrayIndex as final, why is this?

Это потому, что вы используете его внутри другого класса - OnClickListener () и arrayIndex, вероятно, является локальной переменной. Есть два способа обойти это.

  1. объявить его в области глобальной декларации.
  2. ваш класс должен реализовать OnClickListener и переопределить метод OnClick, в который вы должны включить свои коды.

    The if (arrayIndex == TourDescription.currentTour.getTriviaArray().size()) inside onClick is not happening
    

Я не уверен, что вы предоставили достаточно кода здесь, но, просто взглянув на него, я не вижу, как увеличивается arrayIndex, и поэтому он никогда не попадет в TourDescription.currentTour.getTriviaArray (). Size (). Вам нужно увеличить arrayIndex это в предложении else.

...