Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 带有LazyAdapter的自定义第一行ListView_Android_Listview_Android Lazyadapter - Fatal编程技术网

Android 带有LazyAdapter的自定义第一行ListView

Android 带有LazyAdapter的自定义第一行ListView,android,listview,android-lazyadapter,Android,Listview,Android Lazyadapter,我有一个用图像显示新闻的列表视图,并在(position==0)更改布局时进行设置,然后为以下新闻设置一个普通的列表视图行,但这只适用于屏幕上显示的3个项目,然后位置返回到0并再次更改视图,这里有帮助吗 这是我的lazyAdapter代码 vi = convertView; Log.d("NOTICIAS", "P0sition: " + position); // set Layout for 1rst item if (c

我有一个用图像显示新闻的列表视图,并在(position==0)更改布局时进行设置,然后为以下新闻设置一个普通的列表视图行,但这只适用于屏幕上显示的3个项目,然后位置返回到0并再次更改视图,这里有帮助吗

这是我的lazyAdapter代码

        vi = convertView;

        Log.d("NOTICIAS", "P0sition: " + position);
        // set Layout for 1rst item
        if (convertView==null && position == 0) {
            vi = inflater.inflate(R.layout.noticias_list_item_first, null);     
        }
        // set layout for the next items
        else if(convertView==null  && position != 0){
            vi = inflater.inflate(R.layout.noticias_list_item, null);
        }

        TextView news_id = (TextView)vi.findViewById(R.id.news_id); // news_id
        TextView news_titulo = (TextView)vi.findViewById(R.id.news_titulo); // news_titulo
        TextView news_desc = (TextView)vi.findViewById(R.id.news_desc); // news_desc
        //TextView news_fecha = (TextView)vi.findViewById(R.id.news_fecha); // news_fecha
        ImageView news_img = (ImageView)vi.findViewById(R.id.news_img); // news_img

        HashMap<String, String> news = new HashMap<String, String>();
        news = data.get(position);

        // Setting all values in listview
        news_id.setText(news.get(NoticiasActivity.TAG_NEWS_ID));
        news_titulo.setText(news.get(NoticiasActivity.TAG_NEWS_TITULO));
        news_desc.setText(news.get(NoticiasActivity.TAG_NEWS_DESC));
        //news_fecha.setText(song.get(NoticiasActivity.TAG_NEWS_FECHA));
        imageLoader.DisplayImage(news.get(NoticiasActivity.TAG_NEWS_IMG), news_img);

            return vi;
vi=convertView;
日志d(“通知”,“位置:+位置”);
//设置第一项的布局
if(convertView==null&&position==0){
vi=充气机。充气(R.layout.noticias\u list\u item\u first,null);
}
//设置下一个项目的布局
else if(convertView==null&&position!=0){
vi=充气机充气(R.layout.noticias\u list\u项,空);
}
TextView news_id=(TextView)vi.findViewById(R.id.news_id);//新闻id
TextView news_titulo=(TextView)vi.findViewById(R.id.news_titulo);//蒂图洛新闻
TextView news_desc=(TextView)vi.findViewById(R.id.news_desc);//新闻描述
//TextView news_fecha=(TextView)vi.findViewById(R.id.news_fecha);//新闻周刊
ImageView news_img=(ImageView)vi.findViewById(R.id.news_img);//新闻
HashMap news=新的HashMap();
新闻=数据。获取(位置);
//在listview中设置所有值
news_id.setText(news.get(notifiasactivity.TAG_news_id));
news_titulo.setText(news.get(notifiasactivity.TAG_news_titulo));
news_desc.setText(news.get(notifiasactivity.TAG_news_desc));
//news_fecha.setText(song.get(notifiasactivity.TAG_news_fecha));
imageLoader.DisplayImage(news.get(noticeAsActivity.TAG\u news\u IMG)、news\u IMG);
返回vi;

ListView
出于性能目的回收列表项,因此在您的情况下,它尝试将相同的视图用于0,3,6。。。索引

由于有两种不同的布局,因此需要
覆盖
获取视图类型计数
并返回2

 @Override
public int getViewTypeCount() {
    return 2; // return the view type
}
另外,
覆盖
获取项目视图类型
并为位置0返回一个唯一的类型,为其他类似位置返回相同的类型

@Override
public int getItemViewType(int position){
    // return a unique number
    if(position==0){
        return 0;
    }
    else {
        return 1;
    }
}