我是 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/