Хорошо. Я делаю простое приложение для мелочей викторины, в котором пользователь слушает звук и угадывает песню. Проблема, с которой я сталкиваюсь, заключается в том, что если пользователь нажимает кнопку «Далее», не указывая на звук, приложение отключается, что не должно. и если пользователь прослушивает звук и нажимает паузу, а затем нажимает кнопку «Далее», он снова вылетает. Он работает хорошо, только когда пользователь прослушивает аудио, выберите опцию и нажмите «Далее», не нажимая кнопку паузы. Вот кодПриложение вылетает, если кнопка «играть» не нажата.
private void setQuestionView()
{
imagebutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(mp==null) {
mp = MediaPlayer.create(Lylevel3.this, R.raw.q11);
mp.start();
imagebutton.setImageResource(R.drawable.pause);
}
else{
mp.pause();
mp = null;
imagebutton.setImageResource(R.drawable.play);
}
}
});
if (qid == 1) {
imagebutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(mp==null) {
mp = MediaPlayer.create(Lylevel3.this, R.raw.q12);
mp.start();
imagebutton.setImageResource(R.drawable.pause);
}
else{
mp.pause();
mp = null;
imagebutton.setImageResource(R.drawable.play);
}
}
});
}
Есть 10 уровней, и каждый уровень имеет 5 вопросов. Следующая кнопка Код
setQuestionView();
butNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mp.stop();
mp = null;
imagebutton.setImageResource(R.drawable.play);
RadioGroup grp=(RadioGroup)findViewById(R.id.radioGroup1);
RadioButton answer=(RadioButton)findViewById(grp.getCheckedRadioButtonId());
Log.d("yourans", currentQ.getANSWER() + " " + answer.getText());
if(answer.getText().equals(currentQ.getANSWER()))
{
score++;
Log.d("score", "Your score" + score);
}
if(qid<5){
currentQ=quesList.get(qid);
setQuestionView();
}else{
Intent intent = new Intent(Lylevel3.this, ResultActivity.class);
Bundle b = new Bundle();
b.putInt("score", score); //Your score
intent.putExtras(b); //Put your score to your next Intent
startActivity(intent);
finish();
}
}
показать ошибки LogCat – Rajesh
Также там вы устанавливаете v1.setOnClickListener дважды в некоторых случаях причина? –
Вы можете использовать логические флаги, чтобы проверить, полностью ли он воспроизводит музыку, и если у вас есть, то вы можете установить его на true и наоборот для другого условия. – Kottary