当前位置: 首页 > 面试题库 >

java.lang.IllegalArgumentException:不能具有viewTypeCount <1

蔺翰音
2023-03-14
问题内容

我收到此错误:

java.lang.IllegalArgumentException: Can't have a viewTypeCount < 1

我敢肯定,我确切知道是什么原因造成的,但是我不知道如何解决它。

我的应用程序从数据库中加载用户朋友。当用户至少有1个朋友可以放入列表视图时,就可以了。当用户是全新用户并且还没有朋友时,该应用程序将崩溃,因为listview的计数为0。

这仅仅是错误处理的情况吗?

如果我没有发布所有必要的相关代码,请告诉我!

这是我的适配器:

public class MyAdapter extends ArrayAdapter<HashMap<String, String>> {

    Context context;
    int resourceId;
    LayoutInflater inflater;
    private Context mContext;

    @Override

    public int getViewTypeCount() {

        return getCount();
    }

    @Override
    public int getItemViewType(int position) {

        return position;
    }


    ArrayList<HashMap<String, String>>  items;
    public MyAdapter (Context context, int resourceId, ArrayList<HashMap<String, String>> items)
    {
        super(context, resourceId, items);
        mContext = context;
        this.items =items;
        inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent){
        final ViewHolder holder;
        if (convertView == null){

            convertView = inflater.inflate(R.layout.list_item, null);

            holder = new ViewHolder();
            holder.fbphoto = (ImageView)convertView.findViewById(R.id.fbphoto);
            holder.name = (TextView)convertView.findViewById(R.id.name);

   convertView.setTag(holder);

        } else {

            holder = (ViewHolder)convertView.getTag();
        }



        final HashMap<String,String> item = (HashMap<String,String> ) items.get(position);
        if (item != null)
        {

            String facebookProfilePicUrl = "https://graph.facebook.com/"+item.get(TAG_FACEBOOKID)+"/picture?width=150&height=150";

            Picasso.with(mContext)
            .load(facebookProfilePicUrl)
            .placeholder(R.drawable.no_image)
            .into(holder.fbphoto);

holder.name.setText(item.get(TAG_USERNAME));

 }

        return convertView;
    }

    public class ViewHolder
    {
        ImageView fbphoto;
        TextView    name;

    }
}

问题答案:

我认为您错过了ViewTypeCount的观点。您应该在列表中返回“不同视图类型”的数量。这对于回收列表内的视图很重要。

成像您有2种类型的Listitems,一种具有白色背景,一种具有黑色背景。当您以ViewTypeCount返回2时,Listview知道就可以了,这里有2种Listitems,并且不会在getView视图回收中混淆它们。

所以只需使用:

   public int getViewTypeCount() {                 
        return 1;
    }

或根本不重写该方法。



 类似资料:
  • 葡萄牙语:java.lang.IllegalArgumentException jsf composite componente composto jsf com dataTable do primefaces tabela-padrao.xhtml 使用组件/Usando o组件 我有一个例外/Ocorreu esta Exceção! 葡萄牙人:Oque estou fazendo de er

  • 我们刚刚将我们的应用程序从Hazelcast 3.8.0升级到了3.10.1。 我们收到一条错误消息:“键不能是数据类型!”在HazelCast中访问数据时。 我百分之百肯定我们使用的“键”是一个字符串。代码段如下所示: 抛出错误的代码行是: 设置字符串的代码行之间没有任何内容 而击打的那条线:( 因此,看起来“TransactionalMApproxySupport”的属性“SerializeK

  • 好的,首先是代码(它非常简单): 我不是疯子的下一个例子是邮差的回复(chrome): 并在完整错误日志的末尾: 例外情况 org.springframework.web.util.NestedServletException:请求处理失败;嵌套的异常为java.lang.IllegalArgumentException:“none”不包含“/”org.springframework.web.se

  • 我正在尝试表单,其中包括: 普通输入字段 在控制器中设置选项的单选按钮(稍后可能来自数据库) 复选框,其选项也在控制器中设置 选择也在控制器中设置的字段 方法1采用方法1。 如果验证失败,如何在post之后以表单形式再次呈现这些值? 是否也必须像在GET方法中一样设置POST方法中的列表中的值?

  • NestedServletException:请求处理失败;嵌套异常是java.lang.IllegalArgumentException:页面不能为空!

  • 问题内容: 在我们的hibernate项目中,使用java bean模式对实体进行编码。在我们的代码中,有很多地方有人忘记了设置变量的设置,但由于NOT NULL字段而导致异常。 是否有人在使用构建器来构建其实体或使其不可变? 我正在尝试找到一种不是Java bean模式样式的有效模式。 谢谢 问题答案: 如果使Bean不可变,则必须使用字段级访问,并且这附带了它自己的一系列问题,在此进行了详细讨