アプリに再生ボタンを追加したい (私は MediaPlayer を使用しています) が、MediaPlayer を宣言するときに何か間違っている可能性があります。
package com.example.tones;
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
public class TonosSet extends Activity
{
/**
* @see android.app.Activity#onCreate(Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.tonos_set);
Intent i = getIntent();
int position = i.getExtras().getInt("id");
MediaPlayer mp;
ImageView imageView = (ImageView) findViewById(R.id.full_image_view2);
TextView textView1 = (TextView)findViewById(R.id.namesong);
TextView textView2 = (TextView)findViewById(R.id.artist);
ImageButton play = (ImageButton) findViewById(R.id.ButtonPlay);
ImageButton stop = (ImageButton) findViewById(R.id.ButtonStop);
ImageButton setringtone = (ImageButton) findViewById(R.id.ButtonRingtone);
switch (position)
{
case 0:
imageView.setImageResource(R.drawable.picture);
textView1.setText("soundd");
textView2.setText("aut");
break;
case 1:
imageView.setImageResource(R.drawable.picture);
textView1.setText("sound");
textView2.setText("aut");
break;
}
play.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
mp = MediaPlayer.create(TonosSet.this, R.raw.sound1); //Error
mp.start(); //Error again
}
});
}
}
私のエラーは次のとおりです。
Cannot refer to a non-final variable mp inside an inner class defined in a different method
に変更MediaPlayer mp;
するとfinal MediaPlayer mp;
、Eclipse で次のエラーが表示されます。
The final local variable cannot be assigned, since it is defined in an enclosing type.
アプリの何が問題なのかわかりません。私は多くのチュートリアルに従いましたが、同じことをしていると思っていても、誰も私と同じエラーはありません。