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

Android通过自定义Adapter显示ListView

阅读更多
1. 自定义Adapter继承BaseAdapter,并且实现其中的4个抽象方法
protected class MyFolderListAdapter extends BaseAdapter {

		private LayoutInflater inflater;
		private List<Folder> list;

		public MyFolderListAdapter() {
			super();
			inflater = getLayoutInflater();
			list = new ArrayList<Folder>();
		}

		public MyFolderListAdapter(LayoutInflater inflater, List<Folder> list) {
			super();
			this.inflater = inflater;
			this.list = list;
		}

		@Override
		public int getCount() {
			return list.size();
		}

		@Override
		public Object getItem(int position) {
			if (position < list.size()) {
				return list.get(position);
			} else
				return null;
		}

		@Override
		public long getItemId(int position) {
			if (position < list.size()) {
				return list.get(position).getFolerID();
			} else
				return 0;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			Folder folder = list.get(position);

			// 获取当前Item
			View view;
			if (convertView != null
					&& convertView.getId() == R.id.myFolderListItem) {

				// Log.i(LogTag.PROJECT_LOG_TAG, "myFolderListItem id ["
				// + convertView.getId() + "]");
				view = convertView;
			} else {
				view = inflater.inflate(R.layout.my_folder_item, parent, false);
			}

			// 保存当前Item中控件的引用, 每个View对象里面可以通过setTag方法保存一个对象
			FolderViewHolder holder = (FolderViewHolder) view.getTag();
			if (holder == null) {
				holder = new FolderViewHolder();
				holder.myFolderName = (TextView) view
						.findViewById(R.id.myFolderName);
				holder.mailNum = (TextView) view.findViewById(R.id.mailNum);
				view.setTag(holder);
			}

			// 给当前Item中的控件设值
			if (folder != null) {
				holder.myFolderName.setText(folder.getFolderCHNName());
				holder.mailNum.setText("(" + folder.getUnseen() + "/"
						+ folder.getTotalCount() + ")");
			} else {
				holder.myFolderName.setText(R.string.no_myfolder_info);
			}
			return view;
		}

	}

	protected class FolderViewHolder {
		public TextView myFolderName;
		public TextView mailNum;
	}

2.给ListView设置自定义的Adapter即可
listView = (ListView) findViewById(R.id.myFolerListView);
myFolderListAdapter = new MyFolderListAdapter(getLayoutInflater(),
				folderService.getChildrenFolder(folder));
		listView.setAdapter(myFolderListAdapter);
分享到:
评论

相关推荐

    Android自定义adapter的listview

    以上就是关于“Android自定义adapter的listview”的主要知识点。自定义Adapter是Android开发中的核心技能之一,掌握好这一技巧,能帮助我们实现各种复杂的界面效果。通过不断实践和优化,我们可以在保证性能的同时,...

    Android之自定义Adapter的ListView

    总结起来,自定义Adapter在Android开发中扮演了至关重要的角色,它允许开发者根据需求定制ListView的每一个元素,提供更灵活的界面设计和交互体验。通过创建自定义Adapter并实现相关方法,我们可以实现更复杂的列表...

    自定义Adapter适应ListView和GridView

    通过自定义Adapter,我们可以实现各种复杂的列表和网格视图,如带头像和标题的列表项、可滑动的卡片视图、包含多个子视图的复杂项等。同时,自定义Adapter也是学习Android数据绑定和视图复用机制的好途径。 总之,...

    TabHost中填充自定义ListView

    在Android开发中,`TabHost` 是一个非常重要的组件,用于实现多标签页面的切换,而将自定义的`ListView`填充到`TabHost`中则可以构建出复杂的交互界面。下面我们将详细探讨如何实现这一功能。 首先,我们需要了解`...

    通过自定义adapter来显示listview

    下面将详细介绍如何通过自定义Adapter来实现ListView的显示。 首先,我们要理解Adapter的作用。Adapter是连接数据源(如ArrayList)和视图(ListView)的桥梁,它负责将数据转化为ListView可以识别并展示的视图元素...

    Android自定义Adapter适配器

    本项目聚焦于自定义Adapter的实现,特别是如何将其应用于ListView的数据显示。 首先,理解Adapter的基本原理是关键。Adapter是一个接口,它的主要职责是将数据模型转换为视图,以便在UI组件如ListView、GridView或...

    Android ListView 自定义adapter好友列表

    在Android开发中,ListView是一种...总之,通过自定义Adapter,我们可以根据需求自由设计Android应用中的好友列表,实现各种复杂的显示效果和交互操作。熟练掌握Adapter的使用对于提升Android应用的用户体验至关重要。

    expandablelistview+自定义adapter+listview字母排序

    在这个特定的示例中,“expandablelistview+自定义adapter+listview字母排序”是为了展示中国各个省市,并且通过字母对数据进行了排序,使得用户可以快速找到目标信息。 首先,我们要理解ExpandableListView的工作...

    Android自定义列表(ListView)

    ### Android自定义列表(ListView)知识点详解 #### 一、ListView简介 `ListView`是Android中用于展示可滚动列表的一项重要UI控件。它能够高效地处理大量数据,并且可以根据需求进行高度定制化,比如使用自定义...

    Android自定义Adapter的ListView的思路及代码

    总结起来,自定义Adapter是Android开发中实现ListView个性化和功能扩展的重要手段。通过自定义Adapter,开发者可以根据需求创建复杂的数据视图,并处理各种用户交互事件,从而提高应用的用户体验和功能多样性。

    GridView用自定义Adapter

    当我们需要显示的数据不满足默认Adapter提供的功能时,自定义Adapter就显得尤为重要。本篇将深入探讨如何为GridView创建自定义Adapter,以实现更灵活、个性化的数据展示。 首先,了解Adapter的基本概念。Adapter是...

    android自定义dialog+listview自适应屏幕显示.zip

    本项目“android自定义dialog+listview自适应屏幕显示”主要关注这两个方面的实现,确保界面在不同屏幕尺寸和分辨率下都能良好展示。下面我们将深入探讨相关知识点。 首先,我们来讨论自定义Dialog。在Android原生...

    ListView中使用自定义Adapter及时更新数据

    通过以上步骤,我们就能实现ListView中自定义Adapter的数据及时更新功能。在实际开发中,可以根据项目需求进一步扩展Adapter,比如添加点击事件处理、长按事件处理等。 在提供的文件"ListViewRefresh"中,可能包含...

    android studio 自定义adapter开发闹钟小案例

    总结起来,这个"android studio 自定义adapter开发闹钟小案例"涵盖了Android开发中的多个核心知识点:自定义Adapter的实现、ListView的使用、通知栏提醒的构建、以及数据持久化和定时任务的管理。通过这个案例,你...

    android 自定义listview分组显示本地json格式数据

    总结,实现“android 自定义listview分组显示本地json格式数据”需要完成以下步骤:解析本地JSON数据、创建自定义Adapter、处理点击事件以及设置HeaderListView。通过这样的方式,我们可以在Android应用中构建出一个...

    listview 自定义adapter的例子demo

    总之,自定义ListView的Adapter是Android开发中的常见任务,通过它我们可以自由地设计ListView的每一项样式,满足复杂多样的界面需求。理解并掌握这一技术对于提升Android开发能力至关重要。在实践中不断尝试和改进...

    Android中ListView+Adapter

    在Android应用开发中,ListView是显示大量数据列表的常用组件,尤其在构建用户界面时扮演着重要角色。本文将深入探讨如何在Eclipse开发环境中利用ListView结合Adapter来展示数据。 首先,`ListView`是一个可滚动的...

    Listview自定义Adapter显示省名并响应item事件

    以上就是如何在Android中使用自定义Adapter显示ListView并响应item点击事件的基本步骤。这只是一个基础示例,实际应用中可能需要处理更多细节,如加载数据、异步操作等。但这个例子已经足够让你理解Adapter的工作...

    Android ListView控件的使用(自定义适配器 + ListView + 解决OOM )

    当ListView显示大量数据时,可能会导致内存溢出(OOM)。以下是一些常见的解决策略: - **视图复用**:在`getView()`中检查`convertView`是否为空,如果非空则复用,避免每次都创建新视图。 - **数据分页**:不要一...

Global site tag (gtag.js) - Google Analytics