0

我有以下代码来显示可点击项目的列表(用户可以选择多个项目)

 return new AlertDialog.Builder(this)
        .setTitle("Users")          
        .setMultiChoiceItems(csUser, _selections,
                new DialogSelectionClickHandler())
        .setPositiveButton("OK", new DialogButtonClickHandler())
        .create();

使用 CharSequence[] csUser = {"User1", "User2", "User3"}......

但我想用数据库中的用户列表填充它,

有没有办法将项目动态添加到 CharSequence[] ?

有人知道这个的另一种选择吗?

谢谢!

4

1 回答 1

0

你为什么使用数组?如果您不知道添加到列表中的用户数量,也许您应该使用LinkedList. 然后为添加每个项目的构建器创建一个方法:

class Builder {

    private List<CharSequence> users = new LinkedList<CharSequence>();

    ...

    public Builder addUser(CharSequence user) {
        users.add(user);
        return this;
    }
}

然后在你的方法create()中,你转换.LinkedListAlertDialog

“客户端”代码如下所示:

    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();
于 2011-07-07T20:21:25.650 回答