我有一个从数据库中检索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();
答案 0 :(得分:0)
我认为错误在于您为setSingleChoiceItems
方法提供了自定义的类对象。第一个参数必须是CharSequence[]
,ListAdapter
或Cursor
。如果您不打算放置其中一个,则必须使用您自己的setSingleChoiceItems
方法扩展Dialog类。
----编辑----
在您的情况下,我建议扩展ArrayAdapter
类,因为您要显示一些自定义结构(在您的情况下为CheckBox
)。为帮助您实现这一目标,您可能会在此处看到my answer类似问题以及little basic explaination如何扩展ArrayAdapter
类。希望这能帮到你!