java - android - 如何在测验中启用下一个级别?

标签 java android

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

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

我的 Activity 级别:

    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

最佳答案

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

关于java - android - 如何在测验中启用下一个级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19205143/

相关文章:

java - groovy 将十六进制转换为十进制

java - 在 OnClickListener() 中传递变量的值而不是引用

java - 我应该使用什么数据结构来存储对象,以便为新条目轻松生成主键?

android - 如何从 RecyclerView 保存更改的数据并上传更改

android - 如何创建自定义 android map 标记?

php - Codeigniter user_agent 不工作

java - 执行器中的意外死锁

java - 为什么 Java 的 Date.after() 在日期实际上更早时返回 'true'?

java - 在 Android Room 中我可以循环遍历所有记录吗

android - 为什么 setBitmap 在 ICS 中似乎不起作用?