Я смотрю на Android AlertDialog, и его достаточно легко использовать setItems (...), чтобы добавить список строк, которые должны быть показаны.
Однако в большинстве случаев вам нужен список, показывающий хорошие строки, но при выборе чего-то из списка вам нужно фактическое значение, а не строка.
Я не смог найти, как это сделать простым и приятным способом.
Советы? =)
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();
}
});