Android 为什么自定义适配器中出现空对象错误?

Android 为什么自定义适配器中出现空对象错误?,android,listview,custom-adapter,Android,Listview,Custom Adapter,我有一个自定义适配器集。当Listview有4-5个以上的视图时,应用程序停止工作,并在设置的textview中提供空对象。然而,当我在Listview中有2-3个视图时,这段代码工作得很好。 我已经对获取错误的textview进行了注释。请好好休息一下!多谢各位 更新:似乎如果我快速滚动,就会抛出错误!! 更新2:正如@Piotr所建议的,它工作正常,直到我向下滚动到末尾并向上滚动时,它将视图列表项目标题转换为列表项目。因此,所有视图都成为列表项。 错误: 试试这个: public View

我有一个自定义适配器集。当Listview有4-5个以上的视图时,应用程序停止工作,并在设置的textview中提供空对象。然而,当我在Listview中有2-3个视图时,这段代码工作得很好。 我已经对获取错误的textview进行了注释。请好好休息一下!多谢各位

更新:似乎如果我快速滚动,就会抛出错误!! 更新2:正如@Piotr所建议的,它工作正常,直到我向下滚动到末尾并向上滚动时,它将视图列表项目标题转换为列表项目。因此,所有视图都成为列表项。 错误:

试试这个:

public View getView(int position, View convertView, ViewGroup Parent)
{

        int getListPos = newsList.getFirstVisiblePosition();
        int count = Integer.parseInt(objects.get(position).get("ListCount"));
        my_url = objects.get(position).get(GUID);
        if (getListPos == count)
        {
            LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.list_item_header, null);
            TextView HeaderText = (TextView) convertView.findViewById(R.id.headertext);
            TextView HeaderContent = (TextView) convertView.findViewById(R.id.headercontent);
            HeaderText.setText(objects.get(position).get(POST_TITLE).toUpperCase());
            HeaderContent.setText(objects.get(position).get(POST_CONTENT));
            if (objects.get(position).get(GUID).equals("NULL"))
            {
                postImage.setImageResource(R.drawable.default_bg);
            }
            else
            {
                new DownloadImageTask((ImageView) convertView.findViewById(R.id.img)).execute(my_url);
            }
        }
        else
        {
            LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.list_item, null);

            TextView thisview = (TextView) convertView.findViewById(R.id.email);
            Log.d("Title", String.valueOf(thisview.getText()));
            TextView postContent = (TextView) convertView.findViewById(R.id.mobile);
            thisview.setText(objects.get(position).get(POST_TITLE).toUpperCase());
            postContent.setText(objects.get(position).get(POST_CONTENT));
            if (objects.get(position).get(GUID).equals("NULL"))
            {
                postImage.setImageResource(R.drawable.default_bg);
            }
            else
            {
                new DownloadImageTask((ImageView) convertView.findViewById(R.id.img)).execute(my_url);
            }
        }

        return convertView;
    }

你能告诉我们你的错误信息吗?Stacktrace?我们怎么猜出你的异常?哦,对不起,我把错误放在这里了。谢谢你,也许你弄错了,他的作品很好。但唯一的问题是,当我向上滚动时,它会将一个视图列表项头转换为列表项。@Wang'lPakhrin
public View getView(int position, View convertView, ViewGroup Parent)
{

        int getListPos = newsList.getFirstVisiblePosition();
        int count = Integer.parseInt(objects.get(position).get("ListCount"));
        my_url = objects.get(position).get(GUID);
        if (getListPos == count)
        {
            LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.list_item_header, null);
            TextView HeaderText = (TextView) convertView.findViewById(R.id.headertext);
            TextView HeaderContent = (TextView) convertView.findViewById(R.id.headercontent);
            HeaderText.setText(objects.get(position).get(POST_TITLE).toUpperCase());
            HeaderContent.setText(objects.get(position).get(POST_CONTENT));
            if (objects.get(position).get(GUID).equals("NULL"))
            {
                postImage.setImageResource(R.drawable.default_bg);
            }
            else
            {
                new DownloadImageTask((ImageView) convertView.findViewById(R.id.img)).execute(my_url);
            }
        }
        else
        {
            LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = inflater.inflate(R.layout.list_item, null);

            TextView thisview = (TextView) convertView.findViewById(R.id.email);
            Log.d("Title", String.valueOf(thisview.getText()));
            TextView postContent = (TextView) convertView.findViewById(R.id.mobile);
            thisview.setText(objects.get(position).get(POST_TITLE).toUpperCase());
            postContent.setText(objects.get(position).get(POST_CONTENT));
            if (objects.get(position).get(GUID).equals("NULL"))
            {
                postImage.setImageResource(R.drawable.default_bg);
            }
            else
            {
                new DownloadImageTask((ImageView) convertView.findViewById(R.id.img)).execute(my_url);
            }
        }

        return convertView;
    }