更新arrayIndex onClick按钮导致问题

时间:2011-09-14 04:58:01

标签: android button onclick

我正在实施一个测验,这里有一个按钮的方法

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

}

我想要做的是,在方法内部我正在加载另一个布局并为该布局中的按钮分配onclick。

现在我的问题是,我最初获得的arrayIndex,我必须在点击下一个按钮时更新它,并根据此我还有一些其他条件要检查。

但如果我喜欢playquiz(arrayIndex + 1);,它会要求我将arrayIndex声明为final,为什么会这样?

即便如此,它的表现并不像预期的那样。

onClick中的if(arrayIndex == TourDescription.currentTour.getTriviaArray()。size())没有发生

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

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
    
  3. 我不确定你是否在这里提供了足够的代码,但只是通过查看它我看不到arrayIndex被递增,因此它永远不会到达TourDescription.currentTour.getTriviaArray()。size()。你需要增加arrayIndex  它在else子句中。