Я новичок в программировании на Android Studio, и у меня возник вопрос. При обновлении картинок, кнопка, отвечающая за проигрывание музыки не работает









private Button playButton;
Dialog dialog;

public int numLeft;



public int numRight;
public int numSound;
MediaPlayer mp;


public int randomSong;
Array array = new Array();


int numsound;
Random random = new Random();

public int count = 0;

public Jazz() {
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.universal);
    final ImageView img_test = (ImageView) findViewById(R.id.img_test);
    img_test.setClipToOutline(true);
    final ImageView img_right = (ImageView) findViewById(R.id.img_right);
    img_right.setClipToOutline(true);

    final TextView text_left = findViewById(R.id.text_test);

    final TextView text_right = findViewById(R.id.text_right);


    Window w = getWindow();
    w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

    //Вызов диалогового окна
    dialog = new Dialog(this);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setContentView(R.layout.previewdialog);
    dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
    dialog.setCancelable(false);

    //Кнопка закрытия диалогового окна
    TextView btnclose = (TextView) dialog.findViewById(R.id.btnclose);
    btnclose.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                Intent intent = new Intent(Jazz.this, GameLevels.class);
                startActivity(intent);
                finish();

            } catch (Exception e) {

            }
            dialog.dismiss();
        }
    });
    //Кнопка продолжить
    Button button = (Button) dialog.findViewById(R.id.btncontinue);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            dialog.dismiss();
        }
    });


    dialog.show();

    Button button_back = (Button) findViewById(R.id.button_back);
    button_back.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                Intent intent = new Intent(Jazz.this, GameLevels.class);
                startActivity(intent);
                finish();
            } catch (Exception e) {

            }
        }
    });

    //Массив прогресса игры - начало
    final int[] progress = {
            R.id.point1, R.id.point2, R.id.point3, R.id.point4, R.id.point5,
            R.id.point6, R.id.point7, R.id.point8, R.id.point9, R.id.point10,
    };

    //Массив прогресса игры - конец

    //Анимация - начало
    final Animation a = AnimationUtils.loadAnimation(Jazz.this, R.anim.alpha);
    //Анимация - конец

    int numsound = random.nextInt(array.jazzsounds.length);

    numLeft = random.nextInt(array.jazzsounds.length);
    img_test.setImageResource(array.imgs1[numLeft]);
    text_left.setText(array.text1[numLeft]);

    numRight = random.nextInt(array.jazzsounds.length);
    while (numLeft == numRight) {
        numRight = random.nextInt(array.jazzsounds.length);
    }

    if (randomSong != array.jazzsounds[numLeft] && randomSong != array.jazzsounds[numRight]) {
        randomSong = random.nextInt(array.jazzsounds.length);
    }

    randomSong = array.jazzsounds[numsound];


    img_right.setImageResource(array.imgs1[numRight]);
    text_right.setText(array.text1[numRight]);

    //Обработка нажатия на левую картинку - начало
    img_test.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            //Условие касания картинки - начало
            if (event.getAction() ==MotionEvent.ACTION_DOWN) {
                //Если коснулся картинки - начало
                img_right.setEnabled(false);
                if (array.jazzsounds[numLeft] == randomSong) {
                    img_test.setImageResource(R.drawable.img_true);
                }else{
                    img_test.setImageResource(R.drawable.img_false);
                }
                //Если коснулся картинки - конец
            }else if (event.getAction() ==MotionEvent.ACTION_UP) {
                //Если отпустил палец - начало
                if (array.jazzsounds[numLeft] == randomSong) {
                    //Если левая картинка равна
                    if (count < 10) {
                        count += 1;
                    }

                    //Закрашивание шкалы прогресса серым цветом - начало
                    for (int i = 0; i < 10; i++) {
                        TextView tv = findViewById(progress[i]);
                        tv.setBackgroundResource(R.drawable.style_points);
                    }
                    //Закрашивание шкалы прогресса серым цветом - конец

                    //Закрашивание шкалы прогресса зелёным цветом - начало
                    for (int i = 0; i < count; i++) {
                        TextView tv = findViewById(progress[i]);
                        tv.setBackgroundResource(R.drawable.style_points_green);
                    }
                    //Закрашивание шкалы прогресса зелёным цветом - конец
                }else{
                    //Если левая картинка не равна
                    if (count > 0) {
                        if (count == 1) {
                            count = 0;
                        }else{
                            count -= 2;
                        }
                    }
                    //Закрашивание шкалы прогресса серым цветом - начало
                    for (int i = 0; i < 9; i++) {
                        TextView tv = findViewById(progress[i]);
                        tv.setBackgroundResource(R.drawable.style_points);
                    }
                    //Закрашивание шкалы прогресса серым цветом - конец

                    //Закрашивание шкалы прогресса зелёным цветом - начало
                    for (int i = 0; i < count; i++) {
                        TextView tv = findViewById(progress[i]);
                        tv.setBackgroundResource(R.drawable.style_points_green);
                    }
                    //Закрашивание шкалы прогресса зелёным цветом - конец
                }
                //Если опустил палец - конец
                if (count == 10) {
                    //Выход из уровня Jazz
                }else{
                    numLeft = random.nextInt(array.jazzsounds.length);
                    img_test.setImageResource(array.imgs1[numLeft]);
                    img_test.startAnimation(a);
                    text_left.setText(array.text1[numLeft]);

                    numRight = random.nextInt(array.jazzsounds.length);
                    while (numLeft == numRight) {
                        numRight = random.nextInt(array.jazzsounds.length);
                    }

                    if (randomSong != array.jazzsounds[numLeft] && randomSong != array.jazzsounds[numRight]) {
                        randomSong = random.nextInt(array.jazzsounds.length);
                    }


                    img_right.setImageResource(array.imgs1[numRight]);
                    img_right.startAnimation(a);
                    text_right.setText(array.text1[numRight]);


                    img_right.setEnabled(true); //Включение правой картинки
                }

            }
            //Условие касания картинки - конец


            return true;
        }
    });
    //Обработка нажатия на левую картинку - конец

    //Обработка нажатия на правую картинку - начало
    img_right.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            //Условие касания картинки - начало
            if (event.getAction() ==MotionEvent.ACTION_DOWN) {
                //Если коснулся картинки - начало
                img_test.setEnabled(false);
                if (array.jazzsounds[numRight] == randomSong) {
                    img_right.setImageResource(R.drawable.img_true);
                }else{
                    img_right.setImageResource(R.drawable.img_false);
                }
                //Если коснулся картинки - конец
            }else if (event.getAction() ==MotionEvent.ACTION_UP) {
                //Если отпустил палец - начало
                if (array.jazzsounds[numRight] == randomSong) {
                    //Если правая картинка равна
                    if (count < 10) {
                        count += 1;
                    }

                    //Закрашивание шкалы прогресса серым цветом - начало
                    for (int i = 0; i < 10; i++) {
                        TextView tv = findViewById(progress[i]);
                        tv.setBackgroundResource(R.drawable.style_points);
                    }
                    //Закрашивание шкалы прогресса серым цветом - конец

                    //Закрашивание шкалы прогресса зелёным цветом - начало
                    for (int i = 0; i < count; i++) {
                        TextView tv = findViewById(progress[i]);
                        tv.setBackgroundResource(R.drawable.style_points_green);
                    }
                    //Закрашивание шкалы прогресса зелёным цветом - конец
                }else{
                    //Если правая картинка не равна
                    if (count > 0) {
                        if (count == 1) {
                            count = 0;
                        }else{
                            count -= 2;
                        }
                    }
                    //Закрашивание шкалы прогресса серым цветом - начало
                    for (int i = 0; i < 9; i++) {
                        TextView tv = findViewById(progress[i]);
                        tv.setBackgroundResource(R.drawable.style_points);
                    }
                    //Закрашивание шкалы прогресса серым цветом - конец

                    //Закрашивание шкалы прогресса зелёным цветом - начало
                    for (int i = 0; i < count; i++) {
                        TextView tv = findViewById(progress[i]);
                        tv.setBackgroundResource(R.drawable.style_points_green);
                    }
                    //Закрашивание шкалы прогресса зелёным цветом - конец
                }
                //Если опустил палец - конец
                if (count == 10) {
                    //Выход из уровня Jazz
                }else{
                    numLeft = random.nextInt(array.jazzsounds.length);
                    img_test.setImageResource(array.imgs1[numLeft]);
                    img_test.startAnimation(a);
                    text_left.setText(array.text1[numLeft]);

                    numRight = random.nextInt(array.jazzsounds.length);
                    while (numLeft == numRight) {
                        numRight = random.nextInt(array.jazzsounds.length);
                    }

                    if (randomSong != array.jazzsounds[numLeft] && randomSong != array.jazzsounds[numRight]) {
                        randomSong = random.nextInt(array.jazzsounds.length);
                    }


                    img_right.setImageResource(array.imgs1[numRight]);
                    img_right.startAnimation(a);
                    text_right.setText(array.text1[numRight]);

                    //Обновление кнопки проиграть музыку - начало
                    //Обновление кнопки проиграть музыку - конец

                    img_test.setEnabled(true); //Включение левой картинки
                }

            }
            //Условие касания картинки - конец


            return true;
        }
    });
    //Обработка нажатия на правую картинку - конец












    // проверка, чтобы песня совпадала с numleft или numright
    while ((numsound != numLeft) && (numsound != numRight)) {
        numsound = random.nextInt(array.jazzsounds.length);
    }



    // обработчик кнопки для проигрывания музыки
    Button buttonplaymusic = findViewById(R.id.button_play_misic);
    buttonplaymusic.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                playMusic(randomSong);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });

    // обработчик кнопки для остановки музыки
    Button buttonmusicstop = findViewById(R.id.button_music_stop);
    buttonmusicstop.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (mp != null) {
                mp.stop();
                mp.release();
                mp = null;
            }
        }
    });
}

private void playMusic(int randomSong) {
    if (mp != null) {
        mp.release();
    }
    mp = MediaPlayer.create(getApplicationContext(), randomSong);
    mp.setLooping(true);
    mp.start();
}

Ответы (0 шт):