J'essaie d'accéder à un SeekBar dans un AlertDialog. Je dois soit setOnSeekBarChangeListener(), soit accéder à SeekBar.getProgress() pour obtenir sa valeur. Où est-ce que je fais ça? C'est possible?Comment définir OnSeekBarChangedListener pour SeekBar utilisé dans AlertDialog via LayoutInflater
La boîte de dialogue est affichée à l'aide de showDialog (id) à partir de onOptionsItemSelected.
Le code suivant est utilisé dans onCreateDialog pour créer le composant AlertDialog avec un contenu personnalisé qui inclut un SeekBar.
case CALIBRATE_DIALOG_ID: {
// This example shows how to add a custom layout to an AlertDialog
LayoutInflater factory = LayoutInflater.from(this);
final View calibrateView = factory.inflate(R.layout.dlg_calibrate, null);
return new AlertDialog.Builder(this)
.setIcon(R.drawable.alert_dialog_icon)
.setTitle("Calibrate")
.setView(calibrateView)
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//mSeekBar1 = (SeekBar) findViewById(R.id.SeekBar01);
//Toast.makeText(ctx, mSeekBar1.getProgress(), Toast.LENGTH_SHORT);
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
/* User clicked cancel so do some stuff */
}
})
.create();
}
Je ne peux pas le faire dans l'activité principale onCreate; le SeekBar n'a pas encore été créé. Je pensais que je serais en mesure d'obtenir un handle sur la valeur SeekBar.getProgress() dans le gestionnaire onClick du bouton Ok, mais ne pouvait pas.
Toutes les suggestions seraient super!
grâce
patrick
Eh bien c'était trop évident ... merci encore! – bugzy