0

アプリに再生ボタンを追加したい (私は 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.

アプリの何が問題なのかわかりません。私は多くのチュートリアルに従いましたが、同じことをしていると思っていても、誰も私と同じエラーはありません。

4

1 に答える 1

0

問題を修正しました:

public class TonosSet extends Activity{

private MediaPlayer mp;

=D この初心者の質問に感謝します。

于 2012-10-06T02:12:13.540 に答える