Java Android:动态初始化整数数组:材质对话框库

Java Android:动态初始化整数数组:材质对话框库,java,android,arrays,android-studio,integer,Java,Android,Arrays,Android Studio,Integer,这将生成一个固定大小为2的整数数组 但是我需要一个动态大小的整数[]数组。有时有3个或更多项目 因为我正在使用并且它使用Integer[]来显示已选择的项目 如果我使用上面选择的数组,它将始终显示选中的1,2,如果用户选择2和3我希望在用户再次选择对话框时显示选中的这些位置。有办法吗 代码: Integer[]已选定; 选定=新整数[]{1,2}; new MaterialDialog.Builder(this.title)(R.string.socialNetworks) .项目(社交网络)

这将生成一个固定大小为2的整数数组

但是我需要一个动态大小的
整数[]
数组。有时有3个或更多项目

因为我正在使用并且它使用
Integer[]
来显示已选择的项目

如果我使用上面选择的数组,它将始终显示选中的
1,2
,如果用户选择
2
3
我希望在用户再次选择对话框时显示选中的这些位置。有办法吗

代码:

Integer[]已选定;
选定=新整数[]{1,2};
new MaterialDialog.Builder(this.title)(R.string.socialNetworks)
.项目(社交网络)
.ItemScalBackMultiChoice(已选择,(对话框,其中,文本)->{
StringBuilder str=新的StringBuilder();
for(int i=0;i0)str.append('\n');
str.append(其中[i]);
str.append(“:”);
str.append(文本[i]);
}
showtoos(str.toString());
返回true;//允许选择
})
.onNeutral((dialog,which)->dialog.ClearSelectedDices())
.onPositive((dialog,which)->dialog.disease())
.alwaysCallMultiChoiceCallback()的
.positiveText(R.string.md\u选择\u标签)
.自动解除(错误)
.neutralText(R.string.clear\u选项)
.show();

初始化您的
整数[]
如下:

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

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

初始化

Integer[] selected = new Integer[socalNetowrks.length];
List myin=new ArrayList()//您可以动态地添加到该列表中
增加(1)//增值
增加(2);
所选整数[]=myin.toArray(新整数[myin.size()])//转换为数组
ArrayList用于动态添加普通数组以外的值

Integer[] selected = new Integer[socalNetowrks.length];
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