从android中的多个按钮启用一次只能执行一个按钮

时间:2014-07-10 06:32:40

标签: android button click onclicklistener

我有一个图像按钮列表,点击时每个按钮都会播放一首歌曲。问题是我可以连续点击一个按钮,从而为点击的每个按钮启用相同的音乐。

我也可以点击switch()案例方法中的其他按钮,而另一个按钮的音乐仍在播放。

当一个人执行时,如何禁用多次点击的工作?请参阅我的代码以供参考。

@Override
public void onClick(View v) {

    // TODO Auto-generated method stub
    switch(v.getId()){
    case R.id.imageButton1:

        // TODO Auto-generated method stub
    sound1=MediaPlayer.create(Learn_Emela.this, R.raw.song2);
    Toast.makeText(getApplicationContext(), "Tingg..", Toast.LENGTH_LONG).show();
    sound1.start();
       break;

    case R.id.imageButton2:
        // TODO Auto-generated method stub
        sound1=MediaPlayer.create(Learn_Emela.this, R.raw.song2);
        Toast.makeText(getApplicationContext(), "Tingg..", Toast.LENGTH_LONG).show();
        sound1.start();
        break;
    case R.id.imageButton3:

        // TODO Auto-generated method stub
        sound1=MediaPlayer.create(Learn_Emela.this, R.raw.song3);
        Toast.makeText(getApplicationContext(), "Tingg..", Toast.LENGTH_LONG).show();
        sound1.start();


        break;`

2 个答案:

答案 0 :(得分:0)

检查音乐是否仍在运行

    AudioManager manager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
    if(manager.isMusicActive())
     {
       // stop music
       sound1.stop();
    enableBUtton(your button1);
     enableBUtton(your button2);//likewise you can do or you can also reduce your code by other logic
     }
else{
    //start other music
    sound1.start();
}


 void enableButton(Button b){
    b.setEnable(false);
    }

答案 1 :(得分:0)

要禁用多次点击,请执行以下操作: -

MediaPlayer mp = MediaPlayer.create(FunActivity.this,
                        R.raw.YOUR_SONG_NAME);
                mp.start();
                BUTTON.setEnabled(false);

                Timer buttonTimer = new Timer();
                buttonTimer.schedule(new TimerTask() {

                    @Override
                    public void run() {
                        runOnUiThread(new Runnable() {

                            @Override
                            public void run() {
                                BUTTON.setEnabled(true);
                            }
                        });
                    }
                }, 6000); //6000 is the duration of your song in seconds.

因此,您可以在播放歌曲的持续时间内禁用该按钮。