2016-06-14 5 views
0
private int clickedNum; 
private boolean clicked; 
private MediaPlayer soundEff; 

private void stopSound() { 
    if (soundEff!=null) { 
     soundEff.stop(); 
     soundEff.release(); 
    } 
} 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_simon); 
    clickedNum=-1; 
    clicked=false; 
    Button quitButton = (Button)findViewById(R.id.simonActivity_quit_button); 
    quitButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      final Dialog quitDialog = new Dialog(SimonActivity.this); 
      quitDialog.setTitle("Pause Dialog"); 
      quitDialog.setContentView((R.layout.dialog_quittomain)); 
      quitDialog.show(); 
      Button no = (Button)quitDialog.findViewById(R.id.quitdialog_no_button); 
      Button yes = (Button)quitDialog.findViewById(R.id.quitdialog_yes_button); 

      no.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        quitDialog.cancel(); 
       } 
      }); 

      yes.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        Intent intent = new Intent(getApplicationContext(),MainActivity.class); 
        startActivity(intent); 
        quitDialog.cancel(); 
       } 
      }); 
     } 
    } 
    ); 

    Button sbtn1= (Button)findViewById(R.id.simonbtn1); 
    sbtn1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      clickedNum=1; 
      clicked=true; 
      stopSound(); 
      soundEff =MediaPlayer.create(SimonActivity.this, R.raw.greensound); 
      soundEff.start(); 

     } 
    }); 

    Button sbtn2= (Button)findViewById(R.id.simonbtn2); 
    sbtn2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      clickedNum=2; 
      clicked=true; 
      stopSound(); 
      soundEff =MediaPlayer.create(SimonActivity.this, R.raw.redsound); 
      soundEff.start(); 
     } 
    }); 

    Button sbtn3= (Button)findViewById(R.id.simonbtn3); 
    sbtn3.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      clickedNum=3; 
      clicked=true; 
      stopSound(); 
      soundEff =MediaPlayer.create(SimonActivity.this, R.raw.yellowsound); 
      soundEff.start(); 
     } 
    }); 

    Button sbtn4= (Button)findViewById(R.id.simonbtn4); 
    sbtn4.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      clickedNum=4; 
      clicked=true; 
      stopSound(); 
      soundEff =MediaPlayer.create(SimonActivity.this, R.raw.bluesound); 
      soundEff.start(); 
     } 
    }); 

    } 



public void onStart() { 
     super.onStart(); 
     int[] array = new int[10]; 
     int[] arrayplayer = new int[10]; 
     Random rnd = new Random(); 
     int btnclick = rnd.nextInt(4) + 1; 
     final Button button1, button2, button3, button4; 
     button1 = (Button) findViewById(R.id.simonbtn1); 
     button2 = (Button) findViewById(R.id.simonbtn2); 
     button3 = (Button) findViewById(R.id.simonbtn3); 
     button4 = (Button) findViewById(R.id.simonbtn4); 
     boolean flag = true; 
     int i; 
     int iNew; 




    for (i = 0; i < 10; i++){ 
     array[i]=0; 
    } 

    i=0; 

     while (flag && i < 10) { 
      for (i = 0; i < 10; i++) { 
       array[i] = btnclick; 
       Toast.makeText(getApplicationContext(),"nihnas", Toast.LENGTH_LONG).show(); 
       iNew=0; 
       while(array[iNew]!=0&&iNew<10) { 
        if (array[i] == 1) { 
         MediaPlayer sound = MediaPlayer.create(SimonActivity.this,R.raw.greensound); 
         performClick(R.drawable.key1c, 300, button1, R.drawable.key1,sound); 
         Log.d("balbla", "hey im here"); 
        } 

        if (array[i] == 2) { 
         MediaPlayer sound = MediaPlayer.create(SimonActivity.this,R.raw.redsound); 
         performClick(R.drawable.key2c, 300, button2, R.drawable.key2,sound); 
         Log.d("balbla", "hey im here"); 
        } 

        if (array[i] == 3) { 
         MediaPlayer sound = MediaPlayer.create(SimonActivity.this,R.raw.yellowsound); 
         performClick(R.drawable.key3c, 300, button3, R.drawable.key3,sound); 
         Log.d("balbla", "hey im here"); 
        } 
        if (array[i] == 4) { 
         MediaPlayer sound = MediaPlayer.create(SimonActivity.this,R.raw.bluesound); 
         performClick(R.drawable.key4c, 300, button4, R.drawable.key4,sound); 
         Log.d("balbla", "hey im here"); 
        } 
        iNew=+1; 
       } 
       btnclick = rnd.nextInt(4) + 1; 

       clicked=false; 

       for (int j = 0; j <= i; j++) { 
        while (clicked == false) { 

        } 

        clicked = false; 
        arrayplayer[j] = clickedNum; 
        flag = Bodek(arrayplayer[j], array[j]); 


       } 

      } 

     } 

} 


private boolean Bodek(int numJ, int numI){ 
    return numJ==numI; 
} 



private void performClick (int id, int miliS, final Button button, final int oldId, final MediaPlayer mp) 
{ 

    button.setBackgroundResource(id); 
    mp.start(); 
    SystemClock.sleep(miliS); 
    button.setBackgroundResource(oldId); 
    mp.stop(); 
} 

Я пытаюсь создать игру «Simon Says» для школьного проекта.Черный экран при запуске моего приложения на эмуляторе студии Android

Я пытаюсь запустить это вызывает черный экран на эмуляторе, каждый другой экран приложения работает, за исключением этого, я, вероятно, испортил код, но он не дает мне ошибку.

+0

Ваши бесконечные петли блокируют нить ui – njzk2

ответ

1

Это из-за бесконечной петли в вашей OnStart(), которая делает поток пользовательского интерфейса занятым.

while (flag && i < 10) { 
      for (i = 0; i < 10; i++) { 
       array[i] = btnclick; 
       Toast.makeText(getApplicationContext(),"nihnas", Toast.LENGTH_LONG).show(); 
       iNew=0; 
       while(array[iNew]!=0&&iNew<10) { 
Смежные вопросы