我有以下代码来显示可点击项目列表(用户可以选择多个项目)
return new AlertDialog.Builder(this)
.setTitle("Users")
.setMultiChoiceItems(csUser, _selections,
new DialogSelectionClickHandler())
.setPositiveButton("OK", new DialogButtonClickHandler())
.create();
使用CharSequence [] csUser = {“User1”,“User2”,“User3”} ......正常工作......
但我想用数据库中的用户列表填充它,
有没有办法动态地将项目添加到CharSequence []?
任何人都可以为此付出另一种选择吗?
谢谢!
答案 0 :(得分:0)
你为什么要使用数组?如果您不知道添加到列表中的用户数,可能应该使用LinkedList
。然后为构建器创建一个添加每个项目的方法:
class Builder {
private List<CharSequence> users = new LinkedList<CharSequence>();
...
public Builder addUser(CharSequence user) {
users.add(user);
return this;
}
}
然后在create()
方法中,转换LinkedList
所需的AlertDialog
。
“客户端”代码如下所示:
Builder builder = new AlertDialog.Builder(this)
.setTitle("Users")
.setPositiveButton("OK", new DialogButtonClickHandler());
for (...) {
CharSequence user = ...
builder.addUser(user);
}
return builder.setSelections(selections)
.setHandler(new DialogSelectionClickHandler())
.create();