-----Main Activity-------------
Button.OnClickListener mClickListener=new Button.OnClickListener(){
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_stage1_start:
intent = new Intent(MainActivity.this, QuizActivity.class);
db = DBhelper.getReadableDatabase();
cur = db.rawQuery("select * from quiz where types = 1 order by random() limit 10", null);
// 처음 레코드로 이동
while( cur.moveToNext())
{
Quiz str = new Quiz();
str.setQuestion(cur.getString( 0 ));
str.setAnswer(cur.getString( 1 ));
str.setTypes(cur.getInt( 2 ));
quizList.add(str);
}
intent.putParcelableArrayListExtra("qList", quizList);
startActivity(intent);
-------QuizActivity----------
else if(Count==10){
/*intent=new Intent(QuizActivity.this, MainActivity.class);
startActivity(intent);*/
final Dialog dialog = new Dialog(QuizActivity.this);
//final Dialog dialog = new Dialog(test.this);
//다이얼로그 타이틀 제거
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
//다이얼로그에 레이아웃 설정
View view = View.inflate(QuizActivity.this, R.layout.game_result, null);
//다잉얼로그 배경 투명
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
dialog.setContentView(view);
dialog.show();
//다이얼로그가 닫혔을시 수행됨
dialog.setOnDismissListener(new OnDismissListener() {
public void onDismiss(DialogInterface dialog) {
}
});
TextView sucess_number = (TextView)view.findViewById(R.id.sucess_number);
Button exit = (Button)view.findViewById(R.id.exit);
sucess_number.setText(answerCount+"/10문제 정답 ");
exit.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(QuizActivity.this,MainActivity.class);
//intent.putExtra("score",Integer.toString(answerCount));
startActivity(intent);
dialog.dismiss();
}
});//end setonclicklistener
}//end if
doit();//timer
}
private void doit(){
new Thread(){
public void run(){
loop();
}
}.start();
}//end doit
private void loop(){
for( time=10;time>=0; time--){
handler.post(new Runnable(){
public void run(){
textTimer.setText(Integer.toString(time));
if(time==0){
if(answer.equals(editAnswer.getText().toString())){
Toast.makeText(QuizActivity.this, "정답",Toast.LENGTH_SHORT).show();
answerCount++;
Count++;
if(Count<10){
intent=new Intent(QuizActivity.this, QuizActivity.class);
intent.putExtra("sendCount",Count);
intent.putParcelableArrayListExtra("qList", quizList);
startActivity(intent);
}else if(Count == 10){
intent=new Intent(QuizActivity.this, QuizActivity.class);
intent.putExtra("sendAnswerCount", answerCount);
intent.putExtra("sendCount",Count);
startActivity(intent);
}
}else if(!answer.equals(editAnswer.getText().toString())){
Toast.makeText(QuizActivity.this, "오답",Toast.LENGTH_SHORT).show();
Count++;
if(Count<10){
intent=new Intent(QuizActivity.this, QuizActivity.class);
intent.putExtra("sendAnswerCount", answerCount);
intent.putExtra("sendCount",Count);
intent.putParcelableArrayListExtra("qList", quizList);
startActivity(intent);
}else if(Count == 10){
intent=new Intent(QuizActivity.this, QuizActivity.class);
intent.putExtra("sendAnswerCount", answerCount);
intent.putExtra("sendCount",Count);
startActivity(intent);
}
}
}//end if time
}//end run
});
try {
Thread.sleep(1000);
Thread.interrupted();
11-20 02:01:24.531: E/AndroidRuntime(2506): FATAL EXCEPTION: main
11-20 02:01:24.531: E/AndroidRuntime(2506): java.lang.NullPointerException
11-20 02:01:24.531: E/AndroidRuntime(2506): at com.example.quiz.QuizActivity$4.run(QuizActivity.java:131)
11-20 02:01:24.531: E/AndroidRuntime(2506): at android.os.Handler.handleCallback(Handler.java:587)
11-20 02:01:24.531: E/AndroidRuntime(2506): at android.os.Handler.dispatchMessage(Handler.java:92)
11-20 02:01:24.531: E/AndroidRuntime(2506): at android.os.Looper.loop(Looper.java:130)
11-20 02:01:24.531: E/AndroidRuntime(2506): at android.app.ActivityThread.main(ActivityThread.java:3683)
11-20 02:01:24.531: E/AndroidRuntime(2506): at java.lang.reflect.Method.invokeNative(Native Method)
11-20 02:01:24.531: E/AndroidRuntime(2506): at java.lang.reflect.Method.invoke(Method.java:507)
11-20 02:01:24.531: E/AndroidRuntime(2506): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-20 02:01:24.531: E/AndroidRuntime(2506): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-20 02:01:24.531: E/AndroidRuntime(2506): at dalvik.system.NativeStart.main(Native Method)
소스랑 해서 다시 질문드립니다.
아까 질문내용은 "스는 간단하게 퀴즈 어플 하나 실습으로 만들었는데요.
메인액티비티에서 asset 폴더의 db파일을 불러와서 sql쿼리를 통해
제가 얻고자 하는 데이터만 얻어서 리스트에 넣고
문제분야마다 그에 해당하는 버튼을 누르면 쿼리가 돌아가게끔 해서 문제를 실행하는 액티비티로 보냈습니다.
문제를 실행하는 액티비티에서는 스레드를 이용해서 타이머를 줬구요. 10초마다 문제가 바뀌게끔 하였습니다.
실행을 하면 문제도 잘 나오고 타이머도 잘뜨고 아무 이상이 없는데... 총 10문제가 다 나오고 다이얼로그로 몇개 맞았다는것까지 뜨고 나면
몇초 후에 에러가 뜨면서 어플이 중지되었다고 합니다. 그리고 확인을 누르면 다시 8번 문제로 돌아가서 다시 반복해서 문제를 보여주는데요. "
이거구요. 에러에 빨간줄 쳐놓은 퀴즈액티비티 131라인에 에러라는 거.. . 위의 소스에 101번 라인 if(Count <10)입니다.