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
,如果用户选择了2
和3
,我想在用户再次选择对话框时显示这些位置。有什么办法吗?
代码:
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:动态初始化整数数组:材质对话框库的主要内容,如果未能解决你的问题,请参考以下文章