Alertdialog Builder不会显示ArrayList

时间:2014-01-15 08:15:48

标签: java android arrays arraylist alertdialog

我有一个从数据库中检索ArrayList的类。我需要在Alert Dialog builder中显示这些项目。但我在这里得到一个错误。请帮助!

这是我的错误:

  

错误:方法setSingleChoiceItems(int,int,   AlertDialog.Builder类型中的DialogInterface.OnClickListener)   不适用于参数(Name [],int,new   DialogInterface.OnClickListener(){})

ArrayList<Name> n_names = null;


n_names = db.getAllNames();

AlertDialog.Builder builder = new AlertDialog.Builder(Name.this);
    builder.setTitle("Choose Name");
    builder.setSingleChoiceItems(n_names.toArray(new Name[n_names.size()]), -1, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int item) {

    }});

    builder.setPositiveButton("Ok",
     new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int id) {

    }});


    builder.setNegativeButton("Cancel",
    new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int id) {


    }});
    AlertDialog alert = builder.create();
    alert.show();

1 个答案:

答案 0 :(得分:0)

我认为错误在于您为setSingleChoiceItems方法提供了自定义的类对象。第一个参数必须是CharSequence[]ListAdapterCursor。如果您不打算放置其中一个,则必须使用您自己的setSingleChoiceItems方法扩展Dialog类。

----编辑----

在您的情况下,我建议扩展ArrayAdapter类,因为您要显示一些自定义结构(在您的情况下为CheckBox)。为帮助您实现这一目标,您可能会在此处看到my answer类似问题以及little basic explaination如何扩展ArrayAdapter类。希望这能帮到你!