Android. Comment puis-je configurer tous les boutons cliquables ou unclickable en même temps à l'aide de setClickable?

L'écran affiche quatre boutons. Lorsqu'un bouton est enfoncé, un lecteur multimédia joue un son. Le problème, je vais avoir, c'est la mise en œuvre de setClickable pour tous les boutons en même temps.

Une fois qu'on clique sur un bouton, je veux que tous les boutons de la unclickable jusqu'à ce que le lecteur multimédia est fini de jouer les sons associés avec le clic sur le bouton. Alors je veux que tous les boutons pour en revenir à cliquable.

Le code fonctionne très bien jusqu'à ce que je activer le setClickable code, le code pour buttonOne est désactivé dans mon exemple de code ci-dessous. Le test de téléphone se bloque et me dit que l'application a cessé et d'essayer de nouveau.

Malheureusement, sans setClickable, l'utilisateur peut appuyer sur un bouton et d'entendre tous les sons avant la première son sélectionné est fini de jouer.

Je vous remercie pour votre temps et votre aide.

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 );
}
InformationsquelleAutor John | 2010-09-15