ArryList를 사용해서 설문조사 하는 프로그램을 만들려고 하는데, 자꾸 죽어버리네요ㅠ

이 부분이 버튼을 눌렀을때 질문이 나와야 하는 부분입니다.

소스입니다..

-----------------------------------------------------------------------------

package com.app.App1;


import java.io.BufferedReader;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.Random;


import android.app.Activity;

import android.app.AlertDialog;

import android.content.Intent;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.ImageButton;

import android.widget.TextView;


public class start1 extends Activity implements OnClickListener{


ArrayList<Question> questionList1;

ArrayList<Question> questionList2;

int question_number;

ArrayList<Integer> randomNumbers;

TextView tv;

Button btn1;

Button btn2; 

int question_number_last = 15;

int user = 1;

int result = 0;

String resultDetail;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.start1);

questionList1 = new ArrayList<Question>();

questionList2 = new ArrayList<Question>();

question_number = 0;

Log.i("start1.java", "--------------------------------------------------------" );

ImageButton btn4 = (ImageButton)findViewById(R.id.left);

btn4.setOnClickListener(this);

LoadData();

// 최초의 실행 문제

tv = (TextView)findViewById(R.id.question);

btn1 = (Button)findViewById(R.id.cho1);

btn2 = (Button)findViewById(R.id.cho2);

Question q = questionList1.get(question_number);

tv.setText(q.getQuestion());

btn1.setText(q.getChoice1());

btn2.setText(q.getChoice2());

btn1.setOnClickListener(this);

btn2.setOnClickListener(this);

}


public void LoadData() {

try {

InputStream inputStream = this.getResources().openRawResource(

R.raw.data);

BufferedReader bufferedReader = new BufferedReader(

new InputStreamReader(inputStream, "euc-kr"));

String buf = "";

String[] strings = null;

String number = "";

String cho1 = "";

String cho2 = "";

String question = "";

Random rnd = new Random();

while ((buf = bufferedReader.readLine()) != null) {

strings = buf.split(",");

number = strings[0].trim();

cho1 = strings[1].trim();

cho2 = strings[2].trim();

question = strings[3].trim();

int index = 0;

if(questionList1.size()>1)

index = rnd.nextInt(questionList1.size()-1);

else

index = 0;

questionList1.add(index, new Question(number, cho1, cho2, question));

Log.i("start1.java", "[" + number + "] " + question );

}


Log.i("start1.java", "--------------------------------------------------------" );

Iterator<Question> itr2 = questionList1.iterator();

while(itr2.hasNext()) {

Question q = (Question)itr2.next();

Log.i("start1.java", "[" + q.getNum() + "] " + q.getQuestion() );

}

Iterator<Question> itr = questionList1.iterator();

while(itr.hasNext()) {

Question q = (Question)itr.next();

questionList2.add(q);

}

} catch (Exception e) {

Log.e(getClass().getSimpleName(), "파일 읽기 실패");

}

}



private void calResult(){

int r=0;

String rd = "결과 :";

Question q1;

Question q2;

for (int i = 0; i < question_number_last; i++){

q1 = questionList2.get(i);

q2 = questionList2.get(i);

if( q1.getAnswer() == q2.getAnswer()){

r ++;

rd  = rd + "\n" + q1.getQuestion() + ":\n   " + q1.getUserChoice() ;  

}

}

result =  r * 100 / question_number_last  ;

resultDetail = rd;

Log.i("start", "r : " + result );

Log.i("start", "rd : " + resultDetail );

}


@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

}

}


-------------------------------------------------------------------------------------------


그리고 LogCat에서 나는 오류 메시지 입니다.

=======================================================================================================================

06-18 14:22:46.416: DEBUG/AndroidRuntime(386): Shutting down VM

06-18 14:22:46.416: WARN/dalvikvm(386): threadid=1: thread exiting with uncaught exception (group=0x4001d800)

06-18 14:22:46.438: ERROR/AndroidRuntime(386): FATAL EXCEPTION: main

06-18 14:22:46.438: ERROR/AndroidRuntime(386): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.App1/com.app.App1.start1}: java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0

06-18 14:22:46.438: ERROR/AndroidRuntime(386):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)

06-18 14:22:46.438: ERROR/AndroidRuntime(386):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)

06-18 14:22:46.438: ERROR/AndroidRuntime(386):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)

06-18 14:22:46.438: ERROR/AndroidRuntime(386):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)

06-18 14:22:46.438: ERROR/AndroidRuntime(386):     at android.os.Handler.dispatchMessage(Handler.java:99)

06-18 14:22:46.438: ERROR/AndroidRuntime(386):     at android.os.Looper.loop(Looper.java:123)

06-18 14:22:46.438: ERROR/AndroidRuntime(386):     at android.app.ActivityThread.main(ActivityThread.java:4627)

06-18 14:22:46.438: ERROR/AndroidRuntime(386):     at java.lang.reflect.Method.invokeNative(Native Method)

06-18 14:22:46.438: ERROR/AndroidRuntime(386):     at java.lang.reflect.Method.invoke(Method.java:521)

06-18 14:22:46.438: ERROR/AndroidRuntime(386):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)

06-18 14:22:46.438: ERROR/AndroidRuntime(386):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)

06-18 14:22:46.438: ERROR/AndroidRuntime(386):     at dalvik.system.NativeStart.main(Native Method)

06-18 14:22:46.438: ERROR/AndroidRuntime(386): Caused by: java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0

06-18 14:22:46.438: ERROR/AndroidRuntime(386):     at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257)

06-18 14:22:46.438: ERROR/AndroidRuntime(386):     at java.util.ArrayList.get(ArrayList.java:311)

06-18 14:22:46.438: ERROR/AndroidRuntime(386):     at com.app.App1.start1.onCreate(start1.java:56)

06-18 14:22:46.438: ERROR/AndroidRuntime(386):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)

06-18 14:22:46.438: ERROR/AndroidRuntime(386):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)

06-18 14:22:46.438: ERROR/AndroidRuntime(386):     ... 11 more


=================================================================================================================



그리고 LogCat을 따라갔을 때 나는 오류부분 입니다.sssss.bmp