2015-06-18 2 views
-1

Im «играет» с Android Studio, создавая приложение DrumPad, но я борется с ним. Я хочу, чтобы мои кнопки, если были нажаты, начали воспроизводить образец, и если щелкнуть снова, просто остановите выборку. Каждая кнопка имеет дифферент медиаплееры, так вот пример того, что им пытаются сделать:Android setOnClickListener с 2 функциями

redbutton2.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if (!mediaplayer.isPlaying()) { 
      mediaplayer = MediaPlayer.create(MainActivity.this, R.raw.chord1_ashp_maj7); 
      mediaplayer.start(); 
     } 
     stopPlaying(mediaplayer); 
    } 
}); 
+0

В чем Ваш вопрос? – njzk2

ответ

5

просто положить еще часть ..

как,

if (!mediaplayer.isPlaying()) 
{ 
    mediaplayer = MediaPlayer.create(MainActivity.this, R.raw.chord1_ashp_maj7); 
    mediaplayer.start(); 
} 
else 
{ 
    stopPlaying(mediaplayer); 
} 

Потому что, вы должны остановить если его уже запущен.

Примечание: Да, я знаю, возможно, вы позаботились об этом в stopPlaying() functio n, но без кода этой функции я предположил, что вы должны положить конец медиаплеер в команду else.

+0

@Paulo Ferreira - ваше условие if должно быть, 'if (mediaplayer == null ||! Mediaplayer.isPlaying())' – user370305

0

Если я вас понимаю очень хорошо, это просто случай если (--- условие -) {- утверждение -} еще {-} statement-- вопрос

redbutton2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

     if (!mediaplayer.isPlaying()) 
     { 
      mediaplayer = MediaPlayer.create(MainActivity.this, R.raw.chord1_ashp_maj7); 
      mediaplayer.start(); 
     }else{ 
     stopPlaying(mediaplayer); 
     } 
    } 
}); 
+0

Я уже пробовал это, но когда я нажимаю кнопку, он просто закрывает приложение и без иначе, работает отлично, но только повторять звук. кстати, код stopPlaying имеет значение (m! = null) {m.stop(); m.release(); m = null; } –

+0

Что такое stackTrace? @PauloFerreira – Gordons

+0

Что вы имеете в виду с stackTrace? –

0
if (aredbtn2==false) 
    { 
     aredbtn2=true; 
    } 
    else 
    { 
     aredbtn2=false; 
    } 
    if(aredbtn2 == true) 
    { 
     mredbutton2 = MediaPlayer.create(MainActivity.this, R.raw.chord1_ashp_maj7); mredbutton2.start(); } else { stopPlaying(mredbutton2); 
    }