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 に答える