`
zhengaihua
  • 浏览: 21111 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

listview_item多条目加载

阅读更多
package com.example.adapter;

import java.util.List;

import com.example.bean.CircleImageView;
import com.example.bean.News;
import com.example.indicator.R;
import com.nostra13.universalimageloader.core.ImageLoader;

import android.content.Context;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MyBaseAdapter extends BaseAdapter {

	private List<News> newsList;
	private Context context;

	public MyBaseAdapter(Context context, List<News> newsList) {
		this.context = context;
		this.newsList = newsList;

	}

	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return newsList.size();
	}

	@Override
	public Object getItem(int position) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public long getItemId(int position) {

		return 0;
	}

	@Override
	public int getItemViewType(int position) {
		News news = newsList.get(position);
		if (news.imgSmall != null && news.imgSmall.length() > 0) {
			return 1;
		} else {
			return 0;
		}
		
	}

	@Override
	public int getViewTypeCount() {

		return 4;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		int i = getItemViewType(position);
		ViewHolder0 vh0 = null;
		ViewHolder1 vh1 = null;
		if (convertView == null) {
			switch (i) {
			case 0:
				convertView = View.inflate(context, R.layout.item2, null);
				vh0 = new ViewHolder0();
				vh0.portrait = (CircleImageView) convertView
						.findViewById(R.id.portrait2);
				vh0.authorid = (TextView) convertView
						.findViewById(R.id.authorid2);
				vh0.body = (TextView) convertView.findViewById(R.id.body2);
				convertView.setTag(vh0);
				break;
			case 1:
				convertView = View.inflate(context, R.layout.item, null);
				vh1 = new ViewHolder1();
				vh1.portrait = (CircleImageView) convertView
						.findViewById(R.id.portrait);
				vh1.authorid = (TextView) convertView
						.findViewById(R.id.authorid);
				vh1.body = (TextView) convertView.findViewById(R.id.body);
				vh1.imgSmall = (ImageView) convertView
						.findViewById(R.id.imgSmall);
				convertView.setTag(vh1);
				break;
			default:
				break;
			}
		} else {
			switch (i) {
			case 0:
				vh0 = (ViewHolder0) convertView.getTag();
				break;
			case 1:
				vh1 = (ViewHolder1) convertView.getTag();
				break;
			default:
				break;
			}
		}

		ImageLoader imageLoader = ImageLoader.getInstance();
		News news = newsList.get(position);
		switch (i) {
		case 0:
			vh0.authorid.setText(news.authorid);
			vh0.body.setText(news.body);
			imageLoader.displayImage(news.portrait, vh0.portrait);
			break;
		case 1:
			vh1.authorid.setText(news.authorid);
			vh1.body.setText(news.body);
			imageLoader.displayImage(news.portrait, vh1.portrait);
			
			imageLoader.displayImage(news.imgSmall, vh1.imgSmall);
			break;
		default:
			break;
		}
		return convertView;
	}

	class ViewHolder0 {
		CircleImageView portrait;
		TextView authorid;
		TextView body;
	}

	class ViewHolder1 {
		CircleImageView portrait;
		TextView authorid;
		TextView body;
		ImageView imgSmall;
	}
}

 

分享到:
评论

相关推荐

    android-UI.rar_Android GridView_DEMO_ListView_android listview_g

    `ListView`是Android中用于显示一组长列表的视图,它可以根据用户滚动自动加载更多的数据,节省内存资源。`ListView`通常与`Adapter`一起使用,`Adapter`负责将数据集转换为可以在列表中显示的视图。在DEMO中,你...

    listviewscroll_delphi_ListView_

    在虚拟模式下,ListView只在需要时加载项,从而减少内存占用并提高滚动性能。要启用虚拟模式,设置`TListView.VirtualMode`属性为True,并实现`OnData`事件来提供项的数据。 ```delphi procedure TForm1.ListView1...

    ListView块状滚动条加分批加载数据

    本项目实现了ListView的两个关键特性:块状滚动条(类似微博、QQ微博)和分批加载数据(即无限滚动或下拉加载更多)。下面将详细讲解这两个功能的实现原理及步骤。 **一、ListView自定义滚动条** 1. **创建自定义...

    listview多条删除

    "listview多条删除"这个主题聚焦于ListView的一项高级功能,即如何实现长按条目后进行多条删除,并提供撤销操作。这里我们将详细探讨这个过程涉及的技术点。 1. **长按事件处理**: 在ListView中,我们需要监听...

    VB6 ListView处理海量数据

    在VB6(Visual Basic 6)编程环境中,ListView控件是一种常见的用户界面元素,用于显示信息列表,可以包含多项属性,如图标、子项、复选框等。当需要处理海量数据时,直接将所有数据一次性加载到ListView可能会导致...

    ListView加载多种子布局的demo

    本篇文章将深入探讨如何实现一个ListView加载多种子布局的示例,即“MultyItemListView”。 首先,我们需要理解ListView的工作原理。ListView通过复用视图(ViewHolder)来提高性能,当一个item离开屏幕时,它的...

    C# ListView中添加多种自定义控件源码

    1. 首先,需要创建一个自定义的ListViewItem类,继承自`System.Windows.Forms.ListViewItem`,并添加CheckBox字段。 ```csharp public class CustomListViewItem : ListViewItem { public CheckBox CheckBox { get;...

    Exam 5-2--ACCESS采用ListView显示_C#_数据库_

    ListViewItem item = new ListViewItem(reader[0].ToString()); item.SubItems.Add(reader[1].ToString()); // 根据实际列数添加更多子项 listView.Items.Add(item); } ``` 描述中还提到直接访问模式的操作,这...

    ListView加载不同布局.zip

    在Android开发中,ListView...在实际应用中,你可能还需要考虑更多细节,如数据与布局类型的映射策略、优化ListView的滚动性能等。通过这种方式,我们可以灵活地定制ListView的显示效果,为用户提供更丰富的视觉体验。

    Listview实现刷新和更新一条或多条数据

    本示例主要探讨如何在ListView中实现数据的刷新和更新,包括单条数据的更新以及多条数据的添加。以下是一些核心知识点: 1. **适配器(Adapter)**:ListView的核心是适配器,它负责将数据绑定到ListView的各个视图...

    Wince ListView

    在Windows CE(Wince)平台下,开发PDA或PPC应用时,ListView控件是常用的界面元素,用于展示多条列表数据。然而,在实际使用过程中,开发者可能会遇到一个常见问题:无法批量删除ListView中的多项数据。这个问题...

    listView的基本使用_添加数据源

    ListView是Android平台上常用的一种列表控件,用于展示大量数据集,尤其适合于显示有固定格式且需要滚动查看的多项信息。在Android开发中,ListView的使用是基础且至关重要的,因为它能够有效地管理屏幕空间,提高...

    Android--ListView滚动到底部自动加载下页数据Demo

    这个"Android--ListView滚动到底部自动加载下页数据Demo"是实现一个常见的功能:无限滚动加载,也称为下拉刷新和上拉加载更多。这种功能在许多社交应用、电商应用中广泛应用,当用户滚动到列表底部时,会自动加载更...

    ListView的分页加载

    1. **数据模型与适配器**:创建一个数据模型类,例如`Item`,包含每条数据的属性。然后,创建一个继承自`BaseAdapter`的自定义适配器,如`PaginationAdapter`,用于将数据模型转化为ListView可显示的视图。 2. **...

    ListView把数据显示到屏幕

    9. **自定义ListView项布局**:开发者可以根据需求自定义ListView项的布局XML,以实现各种复杂的设计,如包含多个组件或者自定义动画效果。 10. **异步加载数据**:为了提高用户体验,通常会使用异步加载策略,如...

    安卓listview相关相关-Android--ListView返回第一条数据的实现.rar

    在ListView滚动到底部时加载更多数据,而在顶部时,加载第一条数据。 8. **优化滚动体验**:可以使用`ListView.setSmoothScrollbarEnabled(true)`开启平滑滚动条,提高用户体验。 总之,实现ListView返回第一条...

    ListView拖动到底部刷新

    "ListView拖动到底部刷新"(也称为“无限滚动”或“下拉加载更多”)是一种常见且实用的功能,它允许用户在滚动到ListView底部时自动加载更多内容。这种设计模式广泛应用于社交应用、新闻阅读应用等,为用户提供连续...

    listview快速滑动,修改默认的滑动条

    3. 如果数据量非常大,考虑使用`AbsListView.OnScrollListener`监听滑动事件,根据需要动态加载数据(下拉刷新、上拉加载更多)。 以上就是关于"ListView快速滑动,修改默认的滑动条"的知识点讲解,包括ListView的...

    listview的小demo

    3. 分批加载:如果数据量极大,可以考虑使用Header/Footer来实现分页加载,或者使用下拉刷新和上拉加载更多功能。 六、ListView的其他特性 1. 分割线:通过android:divider属性设置分割线,android:dividerHeight...

    android 设计模式之Listview不同类型Item利用工厂模式的复用

    这样,当ListView需要加载一个新的数据项时,它会调用工厂方法,由工厂来决定创建哪种类型的Item。 为了实现ListView的复用功能,我们还需要使用convertView机制。在Adapter的`getView()`方法中,首先检查...

Global site tag (gtag.js) - Google Analytics