【问题标题】:Android : Dynamically Initialize Integer Array : Material Dialog LibraryAndroid:动态初始化整数数组:材质对话框库
【发布时间】: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();

【问题讨论】:

    标签: java android arrays android-studio integer


    【解决方案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];
      

      【讨论】:

        猜你喜欢
        • 2020-02-01
        • 2011-05-25
        • 2020-06-29
        • 1970-01-01
        • 2021-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多