Thomashaertel的图书馆是一个多选择的微调器

时间:2017-10-13 19:08:20

标签: android

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

  

除非我选择所有项目,否则没有问题,但是当我选择所有项目时   这些项目,它不会在文本视图中显示所选项目。

我尝试寻找解决方案但失败了。 Lemme知道是否有人解决了这个问题。

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

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

我从String资源文件中获取数组。

1 个答案:

答案 0 :(得分:1)

是的,即使几周前我也遇到了同样的问题。这似乎是图书馆的一个问题。我在Github也提出了这个问题,但没有回应。 我没有这个解决方案,但有黑客

而不是使用multispinner的textview,

  

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

textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                spinner.callOnClick(); // call spinner's onClick when textview is clicked
            }

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

  

在微调器上设置适配器并覆盖onItemsSelected(boolean)

并按照以下代码

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提供的视图相比,它看起来很干净,而且您必须自定义 优点

希望它有用