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

Posted

技术标签:

【中文标题】Android:动态初始化整数数组:材质对话框库【英文标题】:Android : Dynamically Initialize Integer Array : Material Dialog Library 【发布时间】:2017-06-20 10:16:41 【问题描述】:
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();

【问题讨论】:

【参考方案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 用于动态添加普通数组以外的值。

【讨论】:

【参考方案2】:

将您的Integer[] 初始化为:

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

【讨论】:

以上是关于Android:动态初始化整数数组:材质对话框库的主要内容,如果未能解决你的问题,请参考以下文章

动态规划3--分割整数

Python——jieba库初使用

Python——jieba库初使用

Android更改材质高程阴影颜色

在 C++ 中初始化动态二维数组

Highcharts.js -纯javasctipt图表库初体验