Android 作为多选微调器的Thomashaertel库

Android 作为多选微调器的Thomashaertel库,android,Android,我一直在使用Thomashaertel的库作为多选微调器 除非我选择了所有项目,否则在我选择所有项目时不会出现问题 项目,它不会在文本视图中显示所选项目 我试图寻找解决办法,但失败了。 让我知道是否有人解决了这个问题 这就是我创建列表的方式。我创建它的方式是否有问题,或者库本身是否有问题 spinner = new MultiSpinner(context); adapter = ArrayAdapter.createFromResource(context, R.arra

我一直在使用Thomashaertel的库作为多选微调器

除非我选择了所有项目,否则在我选择所有项目时不会出现问题 项目,它不会在文本视图中显示所选项目

我试图寻找解决办法,但失败了。 让我知道是否有人解决了这个问题

这就是我创建列表的方式。我创建它的方式是否有问题,或者库本身是否有问题

spinner = new MultiSpinner(context);
adapter = ArrayAdapter.createFromResource(context,
           R.array.data_array, android.R.layout.simple_spinner_item);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

我正在从字符串资源文件中获取数组。

是的,几周前我也遇到过同样的问题。这似乎是图书馆的问题。我也在Github上提出了这个问题,但没有回应。 我没有解决这个问题的方法,但有一个技巧

而不是使用multispinner的textview

您可以使用常规textview并向其添加onClickListener

这使您可以使用多选选项渲染对话框。 现在维护一个stringbuilder

在微调器上设置适配器并覆盖MSselectedBoolean

并遵循下面的代码

public void onItemsSelected(boolean[] selected) {
                    stringbuilder = new StringBuilder();
                    for (int i = 0; i < adapter.getCount(); i++) {
                        if (selected[i]) {
                            list.add(String.valueOf(adapter.getItem(i).toString())); //get the list of selected items
                            if (stringbuilder.length() == 0) {
                                stringbuilder.append(adapter.getItem(i));
                            } else {
                                stringbuilder.append(",").append(adapter.getItem(i));
                            }
                            textView.setText(String.valueOf(stringbuilder));
                        } else {
                            list.remove(adapter.getItem(i).toString()));
                        }
                    }
                    if (stringbuilder.length() == 0) {
                        textView.setText(" Make your selection");
                    }
            }
与multispinner提供的视图相比,它看起来很干净,而且您必须进行自定义 优势


希望有用

谢谢。我试过这个方法,现在它奏效了。但如果这是一个图书馆问题,还有其他解决办法吗?例如使用其他库或类似的东西?您可以根据需要在Github中搜索其他开源库。
public void onItemsSelected(boolean[] selected) {
                    stringbuilder = new StringBuilder();
                    for (int i = 0; i < adapter.getCount(); i++) {
                        if (selected[i]) {
                            list.add(String.valueOf(adapter.getItem(i).toString())); //get the list of selected items
                            if (stringbuilder.length() == 0) {
                                stringbuilder.append(adapter.getItem(i));
                            } else {
                                stringbuilder.append(",").append(adapter.getItem(i));
                            }
                            textView.setText(String.valueOf(stringbuilder));
                        } else {
                            list.remove(adapter.getItem(i).toString()));
                        }
                    }
                    if (stringbuilder.length() == 0) {
                        textView.setText(" Make your selection");
                    }
            }