Android:动态初始化整数数组:材料对话库

时间:2017-02-03 05:42:27

标签: java android arrays android-studio integer

Integer[] selsected;
selected = new Integer[] {1,2};

这会产生一个固定大小为2的整数数组。

但我需要一个动态大小的Integer[]数组。有时候有3件或更多......

因为我使用MaterialDialog multichoice list dialog并使用Integer[]来显示已选择的项目。

如果我使用上面选定的数组,它会始终显示1,2,如果用户选择23我想在用户再次选择对话框时将这些位置显示为已选中。有什么办法吗?

代码:

Integer[] selsected;
selected = new Integer[] {1,2};
new MaterialDialog.Builder(this).title(R.string.socialNetworks)
    .items(socialNetworks)
    .itemsCallbackMultiChoice(selected, (dialog, which, text) -> {
        StringBuilder str = new StringBuilder();
        for (int i = 0; i < which.length; i++) {
            if (i > 0) str.append('\n');
            str.append(which[i]);
            str.append(": ");
            str.append(text[i]);
        }
        showToast(str.toString());
        return true; // allow selection
    })
    .onNeutral((dialog, which) -> dialog.clearSelectedIndices())
    .onPositive((dialog, which) -> dialog.dismiss())
    .alwaysCallMultiChoiceCallback()
    .positiveText(R.string.md_choose_label)
    .autoDismiss(false)
    .neutralText(R.string.clear_selection)
    .show();

2 个答案:

答案 0 :(得分:1)

您可以使用数组列表和整数数组

初​​始化

List<Integer> myin=new ArrayList<>(); //you can add to this dynamically

myin.add(1); //adding values

myin.add(2);

Integer [] selected = myin.toArray(new Integer[myin.size()]); //converting to array

ArrayList用于动态添加普通数组以外的值。

答案 1 :(得分:0)

宣传您的Integer[]

Integer[] selected = new Integer[socalNetowrks.length];