Android 带有LazyAdapter的自定义第一行ListView
我有一个用图像显示新闻的列表视图,并在(position==0)更改布局时进行设置,然后为以下新闻设置一个普通的列表视图行,但这只适用于屏幕上显示的3个项目,然后位置返回到0并再次更改视图,这里有帮助吗 这是我的lazyAdapter代码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
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;
}
}