【问题标题】:Add data to CharSequence dynamically [duplicate]动态地将数据添加到 CharSequence [重复]
【发布时间】:2011-07-07 20:07:25
【问题描述】:

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

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

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

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

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

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

谢谢!

【问题讨论】:

    标签: java android charsequence


    【解决方案1】:

    为什么要使用数组?如果您不知道添加到列表中的用户数量,也许您应该使用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();
    

    【讨论】:

    • 此解决方案无助于 OP 使用 setMultiChoiceItems
    猜你喜欢
    • 2023-03-06
    • 2011-02-27
    • 1970-01-01
    • 2014-09-20
    • 1970-01-01
    • 2015-01-09
    • 2011-05-16
    • 1970-01-01
    • 2011-03-08
    相关资源
    最近更新 更多