Weird error + How to make this code more efficent?
<p>as soon as I use method Game(), my app crashes, why?
Also I'd like to know if it's possible to make my code shorter in terms of space it takes &amp; better.</p>

<p>Code:</p>

<pre><code>package com.aleksei.etb;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;

public class ETBetaActivity extends Activity implements View.OnClickListener {

    Button answer_1,
    answer_2,answer_3,
    answer_4,main;

    TextView q_textview,
    TextView tip;

    private String aString[];

    private int i1 = 0;
    private int correct = 0;

    private boolean alive = false;

    MediaPlayer button_click;

    private String[] questions ={"Question 1" , "Question 2","Question 5"};
    private String[] answers_correct ={"Correct answer 1", "Correct answer 2","Correct answer 3","Correct answer 4","Correct answer 5"};

    List&lt;String&gt; question_list = new ArrayList&lt;String&gt;();
    List&lt;String&gt; answer_list_correct = new ArrayList&lt;String&gt;();


    @Override
    public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            getData();
    }

    @Override
    public void onClick(View view) {

        button_click = MediaPlayer.create(this, R.raw.button_click);
        button_click.start();
        switch(view.getId()){

           case R.id.button5: //main
                             if(!alive)
                             alive = true;
                             break;
           case R.id.button1: //answer_1
                             if(alive == false)
                               return;
                             if(correct(1))
                               correct++;           
                             break;
           case R.id.button2: //answer_2
                             if(alive == false)
                               return;
                             if(correct(2))
                               correct++;
                             break;
           case R.id.button3: //answer_3
                             if(alive == false)
                               return;
                             if(correct(3))
                               correct++;           
                             break;
           case R.id.button4: //answer_3
                             if(alive == false)
                               return;
                             if(correct(4))
                               correct++;
                             break;
               default:
                             break;     
           }
           Game();      
    }

    private boolean correct(int button){

       try {
            for (int i = 0; i &lt; answers_correct.length; i++){
                 if(button == 1 &amp;&amp; aString[0] == answers_correct[i]
            || button == 2 &amp;&amp; aString[1] == answers_correct[i]
            || button == 3 &amp;&amp; aString[2] == answers_correct[i]
            || button == 4 &amp;&amp; aString[3] == answers_correct[i])
                        return true;
            }
       } 
       catch(Exception ex){
            System.out.println(ex);
       }
       return false;
    }

    private void Game(){

        if(i1 &gt; questions.length) //no more questions
            return;
        main.setText("Next");
            try {
                    String answer_list[][] = {
                               {answers_correct[i1], "Answer 1-2" , "Answer 1-3" , "Answer 1-4"},
                               {answers_correct[i1], "Answer 2-2" , "Answer 2-3" , "Answer 2-4"},
                               {answers_correct[i1], "Answer 3-2" , "Answer 3-3" , "Answer 3-4"},
                               {answers_correct[i1], "Answer 4-2" , "Answer 4-3" , "Answer 4-4"},
                               {answers_correct[i1], "Answer 5-2" , "Answer 5-3" , "Answer 5-4"}};

                    Collections.shuffle(Arrays.asList(answer_list[i1]));
                    answer_1.setText(answer_list[i1][0]);
                    answer_2.setText(answer_list[i1][1]);
                    answer_3.setText(answer_list[i1][2]);
                    answer_4.setText(answer_list[i1][3]);
                    aString[0] = answer_list[i1][0];
                    aString[1] = answer_list[i1][1];
                    aString[2] = answer_list[i1][2];
                    aString[3] = answer_list[i1][3];
                    q_textview.setText(questions[i1]);
          } 
          catch(Exception e){
            System.out.println(e);
          }
          tip.setText(correct);

        /*questions = question_list.toArray(new String[question_list.size()]);
         answers_correct = answer_list_correct.toArray(new                  String[answer_list_correct.size()]);

        question.setText(questions[i1]);        

        answer_list_correct.remove(questions[i1]);
        question_list.remove(questions[i1]);*/
         i1++;
    }
    private void getData(){
        //Getting the data
        main = (Button) findViewById(R.id.button5);
        answer_1 = (Button) findViewById(R.id.button1);
        answer_2 = (Button) findViewById(R.id.button2);
        answer_3 = (Button) findViewById(R.id.button3);
        answer_4 = (Button) findViewById(R.id.button4);
        q_textview = (TextView) findViewById(R.id.question);
        tip = (TextView) findViewById(R.id.answ1);

        //Making the buttons, actually work
        main.setOnClickListener(this);
        answer_1.setOnClickListener(this);
        answer_2.setOnClickListener(this);
        answer_3.setOnClickListener(this);
        answer_4.setOnClickListener(this);

            //Resets the text
            //Note to self: Replace with another ContectView
        main.setText("Begin!");
        answer_4.setText("");
        answer_3.setText("");
        answer_2.setText("");
        answer_1.setText("");

    /*  for(String x : questions) {
            for(String y : answers_correct){

            answer_list_correct.add(y);
            question_list.add(x);

            Collections.shuffle(answer_list_correct);
            Collections.shuffle(question_list);

            }
        } */
    }
}
</code></pre>

<p>Best regards.</p>
