2014-10-26 4 views
0

Я стараюсь самостоятельно при программировании на Android. Пытаясь написать программу, состоящую из 3 кнопок изображения, если сначала один щелчок, музыка воспроизводится, с определенным отображением сообщений, и если вторая нажата, другая музыка будет воспроизводиться вместе с другим отображением сообщений. Но в сообщении об ошибке говорится «Дублировать локальную переменную mp2» во второй строке кодирования, написанной для второго медиаплеера. Пожалуйста, направляйте меня.Дублировать локальную переменную mp2

package com.example.imagebutton; 


import android.app.Activity; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ImageButton; 
import android.widget.Toast; 


public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     try{ 


      final MediaPlayer mp1; 
      final MediaPlayer mp2 = null; 


     ImageButton ib1 = (ImageButton) findViewById(R.id.imageButton1); 
     mp1 = MediaPlayer.create(this, R.raw.muzikone); 

     ib1.setOnClickListener (new View.OnClickListener() { 

      private MediaPlayer mp3; 

      @Override 
      public void onClick(View v) { 

       Toast.makeText(MainActivity.this, "First Button Pressed!", Toast.LENGTH_LONG).show(); 
       if(mp2.isPlaying()){ 
        mp2.reset(); 
       }else{ 
        mp3.reset(); 
       } 
       mp1.start(); 


      }  



     }); 


     ImageButton ib2 = (ImageButton) findViewById(R.id.imageButton2); 
     final MediaPlayer mp2 = MediaPlayer.create(this, R.raw.muziktwo); 

     ib2.setOnClickListener (new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       Toast.makeText(MainActivity.this, "Second Button Pressed!", Toast.LENGTH_LONG).show(); 
       if(mp1.isPlaying()){ 
        mp1.reset(); 
       } 

       mp2.start(); 


      }  



     }); 




     ImageButton ib3 = (ImageButton) findViewById(R.id.imageButton3); 
     final MediaPlayer mp3 = MediaPlayer.create(this, R.raw.muzikthree); 

      ib3.setOnClickListener (new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       Toast.makeText(MainActivity.this, "Third Button Pressed!", Toast.LENGTH_LONG).show(); 
       if(mp1.isPlaying()){ 
        mp1.reset(); 
       }else{ 
        mp2.reset(); 
       } 

       mp3.start(); 


      }  



     }); 


    }catch(Exception e) { 

    } 
    } 
} 

ответ

1

mp2 дважды объявлен, как указано в сообщении, здесь:

final MediaPlayer mp2 = null; 

и здесь

final MediaPlayer mp2 = MediaPlayer.create(this, R.raw.muziktwo); 

Чтобы устранить эту проблему, удалите одно из объявлений.

NB: Я думаю, что у вас есть серьезная проблема с областью в вашем коде, например, this lesson, возможно, может помочь

Смежные вопросы