动态地向CharSequence添加数据

时间:2011-07-07 20:07:26

标签: java android charsequence

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

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

使用CharSequence [] csUser = {“User1”,“User2”,“User3”} ......正常工作......

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

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

任何人都可以为此付出另一种选择吗?

谢谢!

1 个答案:

答案 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();