我一直在使用 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资源文件中获取数组。
答案 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提供的视图相比,它看起来很干净,而且您必须自定义 优点
希望它有用