1

アクティビティのリストがあります。各アクティビティには、再生ボタンと一時停止ボタンがあります。再生ボタンと一時停止ボタンが機能します。アクティビティを終了してから戻ります。戻ると、どちらのボタンも機能しません。

この作業を行うために何をしなければならないのかわかりません。

私はJava/Eclipseの初心者です。

com.zaknorris.brainhacker.v1;

public class attentionbuilder extends Activity{

MediaPlayer mpAttention;


@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.attentionbuilder);

    final MediaPlayer mpAttention = MediaPlayer.create(this,R.raw.attn);


    Button btnplay = (Button) findViewById(R.id.btnplay);

    btnplay.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            mpAttention.start();
            mpAttention.setLooping(true);

        }{;
    };{

    Button btnstop = (Button) findViewById(R.id.btnstop);

    btnstop.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            mpAttention.pause();                
        }}
        );
    };
    }); 



    }
}
4

2 に答える 2

1

括弧と括弧の制御を失いました:

            }{;
    };{
    ...
    }}
    );
};
}); 

btnstopかっこが OnClickListener でコンパイルしようとするため、ボタンが OnClickListener を受け取る方法がわかりませんbtnplay...

これを試して:

    final MediaPlayer mpAttention = MediaPlayer.create(this,R.raw.attn);
    Button btnplay = (Button) findViewById(R.id.btnplay);
    btnplay.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mpAttention.start();
            mpAttention.setLooping(true);
        }
    });

    Button btnstop = (Button) findViewById(R.id.btnstop);
    btnstop.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mpAttention.pause();                
        }
    });

ボタンがまだ機能しない場合は、onPause()、onResume()、および onDestroy() メソッドにコードを投稿してください。

添加

mpAttentionまた、2 回定義している場合は、次の行を変更します。

final MediaPlayer mpAttention = MediaPlayer.create(this,R.raw.attn);

に:

mpAttention = MediaPlayer.create(this, R.raw.attn);

添加

Activity が破棄される前に、MediaPlayer を解放する必要があります。そうしないと、Activity を再作成するときに問題が発生します。

@Override
protected void onDestroy() {
    mpAttention.release();
    super.onDestroy();
}

ユーザーが別のタスク (電話、テキスト メッセージなど) に切り替えたときに再生を自動的に一時停止する場合:

@Override
protected void onPause() {
    if(mpAttention.isPlaying())
        mpAttention.pause();
    super.onPause();
}
于 2012-07-11T18:29:58.233 に答える
0
}{;
    };{

上記の 2 つの記号は、Java に新しく追加されたように思えます...彼は彼...冗談は別として....私はそれが単なる不注意な間違いだと思います....

ここに適切な方法があります:

btnplay.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            mpAttention.start();
            mpAttention.setLooping(true);

        }
    });
于 2012-07-11T18:39:41.223 に答える