屏幕上显示四个按钮。当按下按钮时,媒体播放器将播放声音。我遇到的问题是同时为所有按钮实现setClickable。
单击按钮后,我希望所有按钮都不可单击,直到媒体播放器播放完与该按钮单击相关的声音。然后我希望所有按钮都设置回clickable。
在我启用setClickable代码之前,代码运行得很好--在下面的代码示例中禁用了buttonOne的代码。测试电话锁定,并告诉我应用程序已停止并重试。
不幸的是,在没有setClickable的情况下,用户可以按下任何按钮并在第一个选择的声音播放完成之前听到任何声音。
感谢您的时间和帮助。
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ImageButton;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
public class hipsterdoofus extends Activity
{
private int asoundfilenumber;//integer id of sound file to be played
public ImageButton buttonOne;
public ImageButton buttonTwo;
public ImageButton buttonThree;
public ImageButton buttonFour;
public void myClickHandler(View v) {
switch (v.getId())
{
case R.id.buttonOne:
asoundfilenumber=0x7f040000;
break;
case R.id.buttonTwo:
asoundfilenumber=0x7f040001;
break;
case R.id.buttonThree:
asoundfilenumber=0x7f040002;
break;
case R.id.buttonFour:
asoundfilenumber=0x7f040003;
break;
}//closes switch test
freezeButtonsAndPlaySoundThenUnfreezeButtons();
}//closes onClick
public void freezeButtonsAndPlaySoundThenUnfreezeButtons()
{
**//buttonOne.setClickable( false );//sets buttonOne to unclickable**
MediaPlayer mp = MediaPlayer.create(getBaseContext(), asoundfilenumber);
mp.start();
mp.setOnCompletionListener(new OnCompletionListener()//listens for player to finish then releases player
{
@Override
public void onCompletion(MediaPlayer mpalmost)
{
mpalmost.release();
}
});
**//buttonOne.setClickable( true ); //sets buttonOne to clickable**
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.main );
}发布于 2010-09-15 23:31:29
我认为您要查找的属性应该是setEnabled (用boolean设置)
一些代码;
public void enableDisableButtons(Boolean state){
buttonOne.setEnabled(state);
buttonTwo.setEnabled(state);
buttonThree.setEnabled(state);
buttonFour.setEnabled(state);
}
public void freezeButtonsAndPlaySoundThenUnfreezeButtons()
{
enableDisableButtons(false); // disable buttons
MediaPlayer mp = MediaPlayer.create(getBaseContext(), asoundfilenumber);
mp.start();
mp.setOnCompletionListener(new OnCompletionListener()//listens for player to finish then releases player
{
@Override
public void onCompletion(MediaPlayer mpalmost)
{
enableDisableButtons(true); // Re-enable buttons
mpalmost.release();
}
});
}发布于 2014-09-12 18:15:03
如果要禁用按钮,请使用View类的setEnabled(false)方法
https://stackoverflow.com/questions/3719113
复制相似问题