Lo schermo visualizza quattro pulsanti. Quando viene premuto un pulsante, un lettore multimediale riproduce un suono. Il problema che sto avendo sta implementando setClickable per tutti i pulsanti allo stesso tempo.Android. Come faccio a impostare tutti i pulsanti selezionabili o non cliccabili contemporaneamente utilizzando setClickable?
Dopo aver fatto clic su un pulsante, desidero che tutti i pulsanti siano sbloccabili fino a quando il lettore multimediale non ha terminato di riprodurre il suono associato al clic del pulsante. Quindi voglio che tutti i pulsanti siano ripristinati su cliccabili.
Il codice funziona correttamente finché non si attiva il codice setClickable: il codice per buttonOne è disabilitato nel mio esempio di codice riportato di seguito. Il telefono di prova si blocca e mi informa che l'applicazione si è fermata e riprova.
Sfortunatamente, senza setClickable, l'utente può premere qualsiasi pulsante e ascoltare qualsiasi suono prima che il primo suono selezionato sia finito.
Grazie per il vostro tempo e aiuto.
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);
}
grazie per la risposta rapida. Ci proverò. – John
Grazie Damon. – John
Ho usato la tecnica del metodo dello stato booleano - Ho usato setClickable all'interno del metodo poiché stavo usando il metodo myClickHandler. – John