私はAndroid AlertDialogを見てきましたが、setItems(...)を使って表示されるストリングのリストを追加するのに十分簡単です。AlertDialogリストのカスタムオブジェクト。表示文字列を取得する方法と実際の値を取得する方法?
しかし、ほとんどの場合、素敵な文字列を表示するリストが必要ですが、リストから何かを選択するときは、文字列ではなく実際の値が必要です。
私はそれを簡単かつ素敵な方法で行う方法を見つけることができませんでした。
ヒント? =)の代わりにCharSequence[] items = { "String 1", "String 2", "String 3" };
の
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();
}
});
あなたはもっと耳を傾けることができますか?あなたが欲しいもの? – user370305
ねえ、すみません。今までこのコメントを見ていませんでした。さて、上記のコメント(コード内のコメント)にそのような明確なものがあると思います。私はカスタムオブジェクトをAlertDialogに追加して、オブジェクトtoString()メソッドを印刷する必要がありますが、クリックするとクリックされたオブジェクトを代わりに返すようにします。=) – Ted
私の答えを見て、あなたが望むものを手に入れようと思っています..オブジェクトのカスタムアダプターを作成し、AlertDialogに設定してください。 – user370305