0

我对 MonoDroid/Android 开发相当陌生,我想知道是否有人可以向我指出一个示例或解释我将如何使用自定义 ListView 创建一个 AlertDialog?

我需要一个带有图像的名称列表。我可以使用如下列表创建一个 AlertDialog:

List<string> sPeople = new List<string>();
for (int ndx = 0; ndx < od.PeopleAtLoc.Count; ndx++)
{
    ObjectPeople d = od.PeopleAtLoc[ndx];
    sPeople.Add (d.Name + "\n" + d.Type);
}
string[] stuff = sPeople.ToArray();

new AlertDialog.Builder(this)
    .SetTitle("Choose a Person:")
        .SetItems(stuff, (sender, args) => 
                  { 
            _bInDetails = true;
            Intent intent = new Intent(this, typeof(FindAPersonDetailActivity));
                                intent.PutExtra("PERSON_ID", od.PeopleAtLoc[(int)args.Which].ID);
                                intent.PutExtra ("PERSON_CITY", od.PeopleAtLoc[(int)args.Which].City);
            StartActivity(intent);
        })
        .Show();

但是我真的需要一个与每个项目相关联的图像,这就是为什么我希望我可以将 AlertDialog 与 ListView 一起使用。

谢谢你的帮助!!

4

1 回答 1

3

您可以将自定义Views添加到Dialogs。因此,您可以进行自定义ListView Adapter,使用 a 创建视图,对其进行ListView膨胀,将其添加到 并将其Dialog设置Adapter为您自己的。

var customView = LayoutInflater.Inflate (Resource.Layout.CustomDialogListView, null);
var listView = (ListView) customView.FindViewById(Resource.Id.ListView);
listView.Adapter = new MyListViewAdapter(stuff);

var builder = new AlertDialog.Builder(this);
builder.SetView(customView);
builder.SetPositiveButton(Resource.String.dialog_ok, OkClicked);
builder.SetNegativeButton(Resource.String.dialog_cancel, CancelClicked);

return builder.Create();
于 2013-03-14T16:18:29.517 回答