Errore su codice java, 10 pt al primo che mi aiuta a risolverlo?

Ciao a tutti. Sono alle prime armi con java, sto provando a creare un app nel quale una volta pigiato un bottone parta una traccia mp3 (in questo caso ho scelto astronomia); ho da subito riscontrato questo errore:

C:\Users\utente\AndroidStudioProjects\AstronomiaSong\app\src\main\java\com\example\astronomiasong\MainActivity.java:23: error: local variable sound1 is accessed from within inner class; needs to be declared final

                sound1.start();

                ^

questo è il codice

package com.example.astronomiasong;

import androidx.appcompat.app.AppCompatActivity;

import android.media.MediaPlayer;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        Button buttonPlay = findViewById(R.id.butPlay);

        MediaPlayer sound1 = MediaPlayer.create(this, R.raw.coffin);

        buttonPlay.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                sound1.start();

            }

        });

    }

}

1 risposta

Classificazione
  • 42
    Lv 7
    4 mesi fa
    Risposta preferita

    La soluzione te la suggerisce il compilatore: rendere "final", quindi non modificabile, la variabile sound1.

    final MediaPlayer sound1 = MediaPlayer.create(this, R.raw.coffin);

Altre domande? Fai una domanda e ottieni le risposte che cerchi.