开发者

Updating arrayIndex onClick of button is causing problem

I am implementing a quiz and here am having a method for my button as

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);
            }

}

What I am trying to do is, inside the method I am loading another layout and assigning an onclick for the button in that layout.

Now my problem is, the arrayIndex which I get initially, I have to update this on click of the next button and based on this I have some other conditions to check.

But if I do like 开发者_JAVA百科playquiz(arrayIndex+1);, it asks me to declare the arrayIndex as final, why is this?

And even then it is not behaving in the exact way as it supposed to be.

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

Any suggestion?


But if I do like playquiz(arrayIndex+1);, it asks me to declare the arrayIndex as final, why is this?

This is because you are using it inside another class - OnClickListener() and arrayIndex is probably a local variable. There are two ways to getting around this.

  1. declare it in the global declaration area.
  2. your class should implement OnClickListener and override OnClick method within which you must include your codes.

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

I am not sure if you have provided enough code here but by just looking at it i cannot see arrayIndex being incremented and hence it will never get to TourDescription.currentTour.getTriviaArray().size(). You need to increment arrayIndex it in the else clause.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜