Android:Spinner 适配器 View 类型计数必须为 1

标签 android spinner adapter illegalargumentexception

您好,我在 Android 5.1 模拟器中运行该应用程序时遇到了问题。我有一个包含 Spinner 的屏幕。这个 Spinner 在我运行 android 4.0+ 的手机上运行良好。我收到这样的错误:

java.lang.IllegalArgumentException: Spinner adapter view type count must be 1 at android.widget.Spinner.setAdapter(Spinner.java:439)

我重写了这样的方法:

@Override
public int getItemViewType(int position) {

    return 0;
}

@Override
public int getViewTypeCount() {

    if (hasTitle())
        return _models.length+1;
    else
        return _models.length;
}

我在调试时知道 _models.length 大于 0。调试期间未命中 GetItemViewType。

主要问题是我有两个带有两个微调器的屏幕。使用上述代码后,第一个屏幕可以正常工作,但第二个屏幕就没那么幸运了。

有没有人知道为什么会出现错误,即使我的 _models 确实有值(value)。

对不起,我可能没看错。必须是1...但为什么必须是1??

最佳答案

只需让 getViewTypeCount 返回 1。

此方法允许您为不同的项目扩充不同的布局。它与 getViewType() 一起确保将正确类型的 View 作为 convertView 传递给 getView()

关于Android:Spinner 适配器 View 类型计数必须为 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33861434/

相关文章:

android - 打算在 fragment 类中

安卓微调页脚

Javascript/AJAX 异步加载旋转器

java - 从数组适配器更新 ListView

java - 调用notifyDataSetChanged 时,具有customAdapter 的ListView 未更新?

android - 接受线程上的 IOException

java - 如何使我的 Activity 透明化?

java - 在android中单击按钮后如何锁定微调器

安卓:Viewpager 和 FragmentStatePageAdapter

android - 有人可以解释 'putExtra()' 方法吗?请简单具体