2013-06-01 65 views
2

我正在尝试开发一个应用程序,在那里你说出一个名称,它将查找你的联系人并返回所有名称,如“Lars A.,Lars B.,Lars C.” 。我将所有这些名称保存在一个ArrayList中,并且它可以工作。 现在我想要一个AlertDialog,所以用户可以从列表中选择正确的联系人。我想通了,它必须是一个CharSequence,所以我之前将其转换。但是我认为这份清单是空的,因为我只看到警报信息。AlertDialog.Builder不显示ArrayList <String>列表

本网站描述得非常好,但使用静态值,我需要动态值:Android Developer Site

继承人我的代码:

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
CharSequence[] cs = namearray.toArray(new CharSequence[namearray.size()]); 
builder.setMessage("Welche/n " + cname + " meinst du?"); 
builder.setItems(cs, new DialogInterface.OnClickListener() { 
public void onClick(DialogInterface dialog, 
int item) { 
//do something 
} }); 
AlertDialog alert = builder.create(); 
alert.show(); 
+2

使用调试器或代码中的跟踪来查看列表是否为空以及列表为什么为空。然后修复这个错误。 –

+0

当我做cs.toString();它返回:Java_Lang_CharSequence @ ....并且没有列表 – Marc

+0

要获得数组的有意义的字符串表示,请使用'Arrays.toString(cs)'。 –

回答

5

文档说:

因为该列表会显示在对话框的内容区域,该对话框不能同时显示消息和服务,您应该设定一个与setTitle()对话的标题。

+0

omg非常感谢你,这个小错误花了这么多时间:( – Marc