1

我是 Android 应用程序开发的新手,我正在做一个有类别和级别的测验应用程序,我必须只启用每个类别的第一级,当用户正确回答问题时启用下一个级别,但是,我不知道该怎么做。你可以帮帮我吗?PS:我的数据库有三个表:类别、级别和问题。我已经得到它向用户显示问题并传递问题。下面是我的代码:

public void verifyAnswer(String answer){
    if(qCurrent.getAnswer().equals(answer)){
        if(qid<5){
            qCurrent = qList.get(qid);
            setQuestions();
        }
        else{
            showMsgWin();
                    //here the code to unlock the next level
                    Button level2 = (Button)findViewById(R.id.imgBtnNivel2);
                    level2.setEnabled(true);        
        } 
    }
    else {
        showMsgLose();
    }   
}

我的活动级别:

    ImageButton  btnNivel1 = (ImageButton)findViewById(R.id.imgBtnNivel1);
    ImageButton  btnNivel2 = (ImageButton)findViewById(R.id.imgBtnNivel2);
    ImageButton  btnNivel3 = (ImageButton)findViewById(R.id.imgBtnNivel3);
    ImageButton  btnNivel4 = (ImageButton)findViewById(R.id.imgBtnNivel4);
    ImageButton  btnNivel5 = (ImageButton)findViewById(R.id.imgBtnNivel5);
    ImageButton  btnNivel6 = (ImageButton)findViewById(R.id.imgBtnNivel6);

    btnNivel1.setEnabled(true);
    btnNivel2.setEnabled(false);
    btnNivel3.setEnabled(false);
    btnNivel4.setEnabled(false);
    btnNivel5.setEnabled(false);
    btnNivel6.setEnabled(false);

错误:

10-06 03:56:15.382: E/AndroidRuntime(338): FATAL EXCEPTION: main
10-06 03:56:15.382: E/AndroidRuntime(338): java.lang.NullPointerException
4

2 回答 2

0

最初禁用除 1 之外的所有级别的点击侦听器,假设 level1、level2、level3 和 level4 是您的按钮。

    btnNivel2.setEnabled(false);
    btnNivel3.setEnabled(false);
    btnNivel4.setEnabled(false);

然后启用其余的

else{
            showMsgWin();
                    //here the code to unlock the next level


    btnNivel2.setEnabled(true);
    //btnNivel3.setEnabled(true);
    //btnNivel4.setEnabled(true);

        } 
于 2013-10-06T03:44:58.573 回答
0
public void verifyAnswer(String answer){
if(qCurrent.getAnswer().equals(answer)){
    if(qid<5){
        qCurrent = qList.get(qid);
        setQuestions();
    }
    else{
        showMsgWin();
 //enable the image button here.
 nextLevelButton.setEnabled(true);
 //if you are not using any selector change the image of imagebutton
    nextLevelButton.setImageResource(R.drawable.active_next_level_image);
 //you can write here code for setting the next level..But it will be better to handle
               //it in the nextLevel Image button onclick action
    } 
  }
  else {
    showMsgLose();
  }   
}
于 2013-10-06T04:10:20.780 回答