Ho guardato Android AlertDialog, ed è abbastanza facile usare setItems (...) per aggiungere un elenco di stringhe che devono essere mostrate.Oggetti personalizzati nella lista AlertDialog; come ottenere una stringa di visualizzazione e quindi il valore effettivo?
Tuttavia, nella maggior parte dei casi si desidera visualizzare un elenco di stringhe piacevoli, ma quando si seleziona qualcosa dall'elenco si desidera il valore effettivo e non la stringa.
Non sono riuscito a trovare come farlo in modo facile e piacevole.
Suggerimenti? =)
final Button Button1 = (Button) findViewById(R.id.Button1);
Button1.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
final CharSequence[] items = { "String 1", "String 2", "String 3" };
// INstead of a string array, I want something like:
// ArrayList<CustomObject> test = new ArrayList<CustomObject>(myArray);
// And the CustomObject has a toString() and also a value. This array should in the best of worlds be the base for the list below =)
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle(LanguageHandler.GetString("Test"));
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
// *** I want to get the value here! ***
Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
si può eloborate di più? ciò che vuoi? – user370305
Ehi, scusa. Non ho visto questo commento fino ad ora. Bene, penso che sia chiaro sul commento sopra (il commento nel codice che è). Voglio che gli oggetti personalizzati vengano aggiunti a AlertDialog, dove gli oggetti toString() devono essere stampati, ma quando clicco vorrei ottenere l'oggetto cliccato da restituire invece ... =) – Ted
Guarda la mia risposta, Spero che tu ottenga ciò che desideri .. Crea semplicemente un adattatore personalizzato dei tuoi oggetti e impostalo su AlertDialog. – user370305