ListView 添加title 排序

ASP.NET中ListView的插入、删除、编辑、读取 下面的实例是有关 ListView 服务器控件的一些常用操作! 一、页面代码 <asp:ListView ID="lvDepartment" runat="server" DataKeyNames="F_DepartmentID" EnableModelValidation="True" Inse 阅读详情


onCreate:

private ListView photoList;
private PhotoListAdapter adapter;
private List<File> imgList = new ArrayList<File>();		
private List<File> objFiles = new ArrayList<File>();	
<span style="font-family: Arial, Helvetica, sans-serif;">private List<ImageClass> classList = new ArrayList<ImageClass>() ;</span>
private List<Object> mergeList = new ArrayList<Object>();



	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_photo_manager);

		
	
		photoList = (ListView) findViewById(R.id.photoListView);
		
		Utils.createImageDir(getBaseContext());
		
		loadSDcardPhoto();
		
		adapter = new PhotoListAdapter(mergeList);
		photoList.setOnItemClickListener(onItemClick);
		photoList.setAdapter(adapter);
		
		imgback_photom.setOnClickListener(onclick);
	}

PhotoListAdapter :
private class PhotoListAdapter extends BaseAdapter {

		private List<Object> imgList;
				
		public PhotoListAdapter(List<Object> imgList){
			this.imgList = imgList;
			
		}
		
		@Override
		public int getCount() {
			return imgList.size();
		}

		@Override
		public Object getItem(int position) {
			return imgList.get(position);
		}

		@Override
		public long getItemId(int position) {
			return position;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			
			Object obj = imgList.get(position);
			if(obj instanceof String){				
					
			//标题			
				convertView = getLayoutInflater().inflate(R.layout.datetile, null);
				
				((TextView)convertView.findViewById(R.id.datetitle)).setText(obj.toString());
				
				convertView.setOnClickListener(null);
				convertView.setOnLongClickListener(null);
				convertView.setLongClickable(false);
				
			} else{
				
			//内容
				convertView = getLayoutInflater().inflate(R.layout.photolistview_item, null);
				
				//图片名称
				((TextView)convertView.findViewById(R.id.imageName_photomanager)).setText(((ImageClass)obj).fileName);
				//图片大小
				((TextView)convertView.findViewById(R.id.imgSize_photomanager)).setText(((ImageClass)obj).fileSize);			
				//图片创建时间
				((TextView)convertView.findViewById(R.id.imgcreatetime_photomanager)).setText(((ImageClass)obj).fileCreateTime);

				//设置缩略图			
				ImageView img = (ImageView) convertView.findViewById(R.id.thunmailImg_photomanager);
		//第三方工具ImageLoader异步加载图片
				ImageLoader.getInstance().displayImage( "file://" + ((ImageClass)obj).filePath, img);
		
				
	
			}
<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"><span style="white-space:pre">									</span>//重要</span>
			convertView.setTag(obj);
			return convertView;
		}
			
	}



onItemClick:

	private AdapterView.OnItemClickListener onItemClick = new AdapterView.OnItemClickListener() {

		@Override
		public void onItemClick(AdapterView<?> parent, View view, int position,
				long id) {
			
			Object obj = view.getTag();
			if(<span style="color:#ff6666;">obj instanceof ImageClass</span>){ //这步是关键,防止点击position错位问题
				Intent intent = new Intent(getBaseContext(), PhotoViewActivity.class);
				intent.putExtra("imgPath", ((ImageClass)obj).filePath);
				startActivity(intent);
			}
		}
	};



1.加载sdcard某个文件夹的图片

<pre name="code" class="java">	/**加载SDcard的保存图片*/
	private void loadSDcardPhoto(){
		
		//需判断sdcard是否存在
		File dirFile = new File(filepath);
		if(!dirFile.exists()){
			return;
		}
		
		CollectionsFiles(dirFile);
		
	}



2.获取dirFile文件夹中的所有files,并进行排序

<span style="white-space:pre">	</span>private void CollectionsFiles(File dirFile){
		
		File[] files = dirFile.listFiles();
		
		if(files != null && files.length > 0){
			for(File file : files){
				objFiles.add(file);
			}
						
			for(File file : objFiles){
				String path = file.getAbsolutePath();
				int index = path.lastIndexOf(".");
				if(path.substring(index + 1).compareToIgnoreCase("jpg") == 0){
					imgList.add(file);							
				}
			}
								
			if(imgList != null && imgList.size() > 0){
				
				<span style="color:#ff0000;">//排序 直接使用Collections.sort(imgList) 也是ok的;</span>
				TimeCompartor com = new TimeCompartor();
				Collections.sort(imgList, com);
				
				for(File file : imgLit){
										
					ImageClass c = new ImageClass();
					
					c.fileName = file.getName();
					c.filePath = file.getAbsolutePath();
					c.fileCreateTime = Utils.getFilelastModify(file);
					c.fileSize = Utils.getFileSize(file);
					
					classList.add(c); //保存排序后的信息
				}
			}
			
			Mathch match = new Mathch();
			match.merge(classList);
		}
	}



</pre><div><br /></div>3.TimeCompartor</div><div><span style="white-space:pre"></span><pre name="code" class="java">	private class TimeCompartor implements Comparator<File> {

		@Override
		public int compare(File lhs, File rhs) {
			long l = lhs.lastModified();
			long r = rhs.lastModified();
			Date d1 = new Date(l);
			Date d2 = new Date(r);
			if(d1.getTime() == d2.getTime())
				return 0;
			else if( d1.getTime() < d2.getTime())
				return 1;
			else if( d1.getTime() > d2.getTime())
				return -1;				
			return 0;
		}
		
	}



3.ImageClass
	/**文件信息类*/
	public class ImageClass{
		public String fileName;
		public String fileSize;
		public String filePath;
		public String fileCreateTime;
	}



4. Match class
/**数据拆分以 时间为key 保存到 map<String,List<ImageClass>>*/

	private class Mathch{

		@SuppressWarnings("rawtypes")
		public void merge(List<ImageClass> hay) {
			
			//将hay按照时间分组
			Set<String> keys = new HashSet<String>();
<span style="white-space:pre">			</span>Map<String, PhotoGroup> groups = new TreeMap<String, PhotoGroup>(new Comparator<String>() {
<span style="color:#ff0000;"><span style="white-space:pre">				</span>//由于map是无顺序的,需要以 TreeMap 按key降序。进行排序。</span>

<span style="white-space:pre">				</span>@Override
<span style="white-space:pre">				</span>public int compare(String lhs, String rhs) {
<span style="white-space:pre">					</span>
<span style="white-space:pre">					</span>return rhs.compareTo(lhs);
<span style="white-space:pre">				</span>}
<span style="white-space:pre">			</span>});
			
			for (ImageClass obj : hay) {
				String dates = obj.fileCreateTime;
				keys.add(dates);
			}
			
			for (String key : keys) {
				groups.put(key, new PhotoGroup());
			}
			
			for (ImageClass obj : hay) {
				
				String dates = obj.fileCreateTime;				
				groups.get(dates).getIns().add(obj);
			}
			
						
		    for (Map.Entry entry : groups.entrySet()) {  
		    	
		        String key = entry.getKey().toString();
		        		        
		        if(!mergeList.contains(key))
		        	mergeList.add(key);
		        
		        for(int i = 0; i < groups.get(key).getIns().size();i++){
		        	mergeList.add(groups.get(key).getIns().get(i));
		        }
		    }

		}



5.PhotoGroup class

/**相片组*/
public class PhotoGroup {

	private List<ImageClass> ins = new ArrayList<ImageClass>();
	
	public List<ImageClass> getIns(){
		return ins;
	}
	
	public void SetIns(List<ImageClass> list){
		this.ins = list;
	}
}



这是读取本地文件夹图片的形式,布局文件就不贴了。其它通过服务器获取数据之类的,都可以按照match方法进行  分组、合并、显示



android--ListView实现带标题栏效果(附源码) 立即下载

相关推荐

[Android实例] ListView悬浮标题,类似QQ列表显示

博客地址:http://blog.youkuaiyun.com/krubo1/article/details/50457186

listview添加标题并且悬停顶部

给listview添加标题并且随着手势的滑动标题可以悬停在屏幕顶部,效果图如下: 效果实现起来也不是很复杂,需要自定义listview,答题的思路就是自定义的listview顶部有个textview的title,适配器的顶部也有一个,当满足一定条件的时候标题变化, /*** * 带标题的listview * * @author zhang * */ public

ganggang_ 5324

带标题栏效果的列表视图ListView

带标题栏效果的列表视图ListView,效果实现了带有一些标题的效果的,该项目实现了ListView实现带标题栏效果,具体还是可以上门的图所示效果吧。

Android带标题的列表,Listview Section 多个标题以及内容

其中日期标题部分视图布局:view sourceprint?1 android:orientation=”vertical” android:layout_width=”fill_parent”android:layout_height=”10dip” android:background=”@drawable/section_background”>android:layout_width...

weixin_32557787的博客 625

手把手教你用Xilinx SelectIO IP核搞定ADS42LB69高速ADC的DDR数据采集(附仿真调试技巧)

本文详细介绍了如何使用Xilinx SelectIO IP核实现ADS42LB69高速ADC的DDR数据采集,包括IP核配置、仿真验证和硬件调试技巧。通过精准的时序控制和实战调试方法,解决高速数据采集中的时序对齐问题,提升系统稳定性和可靠性。特别适合FPGA工程师和高速ADC接口设计者参考。

weixin_42533622的博客 153

思澈sdk-新建lcd

co5300至此有3个同ID的驱动,在co5300xxxx.c的LCD_DRIVER_EXPORT(co5300, LCD_ID, &lcdc_int_cfg, &CO5300_drv, LCD_PIXEL_WIDTH, LCD_PIXEL_HEIGHT, 2);2 在customer\peripherals\Kconfig_lcd中添加如下配置(注意修改的地方有两个LCD_USING_TFT_CO5300_143)5 在该文件中的config LCD_DPI配置项下添加:(这里300为DPI)

gongyuan073的专栏 1388

ListView数据排序

ListView通过适配器得到ArrayList或者数组作为数据源,我们可以对ListView的数据源按照某项进行排序。 (1)对文本内容进行排序。  Collections.sort(mArrayList, new Comparator>() { @Override public int compare(Map object1, Map

qwjhappy的专栏 3260

【电子元件篇】MOSFET场效应管作用、选型和测量指南-超简单解读

场效应管是一种电压控制型半导体器件,相比三极管具有输入阻抗高、噪声小、功耗低等优势。主要分为结型和绝缘栅型两大类,后者又可分为耗尽型和增强型MOS管。场效应管通过栅极电压控制漏极电流,具有转移特性和输出特性两大静态特性,以及快速的开关特性。其关键参数包括饱和漏源电流、夹断电压、跨导等,应用场景涵盖信号放大、恒流源、阻抗变换等领域。使用时需根据电路需求选择合适类型,如结型管适合一般放大,功率MOSFET适合高压大电流场合。检测时可用万用表电阻档初步判断好坏和放大能力。

2301_81299416的博客 2542

android设置title_Android使用ListView中实现置顶功能

在项目中实现了ListView置顶的功能其实实现起来还是挺简单的,核心思想是改变其adapter里的数据排序。效果如图哈那么开始吧1 首先你要实现ListView吧,这个很简单,就不多说了,其次是要自己继承 Arrayadapter,因为要用到数据的排序,所以使用Arrayadapter绑定你的数据。 public SessionItemAdapter extends ArrayAdap...

weixin_39997173的博客 193

从零构建AI智能体:基于opencode框架的Agent开发全流程指南

AI智能体(AI Agent)作为人工智能领域的重要发展方向,正从概念走向工程实践。其核心原理在于赋予AI自主规划、执行和迭代的能力,使其不再局限于简单的问答,而是能够理解复杂目标、分解任务、调用工具并完成闭环。这一技术价值在于将AI从“对话伙伴”升级为“执行伙伴”,极大地拓展了自动化边界,在智能客服、数据分析、自动化运维等场景展现出巨大潜力。本文聚焦于如何利用opencode这一热门开发框架,快速构建具备实际能力的智能体。通过拆解其核心组件如技能库、规划器与运行时,并结合具体实践案例,系统阐述了从环境搭建

weixin_29055699的博客 435

ORBSLAM3运行记录(单目+IMU)

ORBSLAM3运行记录1.单目+IMU数据集运行记录自己做的其它测试2.单目+IMU自己采集数据运行记录测试结果 1.单目+IMU数据集运行记录 ORBSLAM3没有预留ROS下单目+IMU的结点,这个需要自己去写代码添加,可以参考这篇博客,《ORBSLAM3 用ROS接口运行双目IMU和单目IMU模式》。我的ROS结点为Mono-IMU,字典文件ORBvoc.txt在ORBSLAM3 / Vocabulary文件夹中,配置文件EuRoC.yaml在ORB_SLAM3 / Examples / Monoc

yys2324826380的博客 1万+

android listview排序分组,Android:如何为ListView排序数据?

我从服务器上下载了一些JSON数据.该数据中的一个字段是距离值.我需要按ListView中从最低到最高的距离对数据进行排序.我不知道该怎么做呢?任何帮助赞赏.这是我的代码,以获取数据不确定如何正确排序?// Hashmap for ListViewArrayList> bathroomList = new ArrayList>();@Overridepublic void onCrea...

weixin_36261449的博客 187

非模式物种PySCENIC分析流程

外的物种想要做scenic分析的话, 可以使用同源基因转换后再进行分析, 将要分析的物种的gene Symbol转换为人、小鼠或者是果蝇的gene Symbol后进行分析。odiscus sinensis(中华鳖)的基因-细胞的矩阵,进行pyscenic分析的话,可参考以下示例。目前pyscenic分析支持的物种仅为人、小鼠和果蝇,其他物种暂时还没有相应的数据库,因。本教程基于Linux及服务。SCENIC转录因子分析。器中的Rstudio环境。例如我们有一个Pel。

weixin_47195452的博客 934

android listview排序分组,Android:如何对ListView的数据进行排序?

我有一些要从服务器中提取的JSON数据。 此数据中的字段之一是距离值。 我需要按照ListView中从最低到最高的距离对数据进行排序。 我不确定该怎么做?任何帮助表示赞赏。这是我获取数据的代码,不确定如何正确排序?// Hashmap for ListViewArrayList> bathroomList = new ArrayList>();@Overridepublic void ...

weixin_39911567的博客 550

【毕设护航】从0构建YOLOv8犬类识别系统,120种犬类精准检测+可视化界面全流程指南

本文介绍了一个基于YOLOv8的120种犬类目标检测与可视化系统毕业设计项目。该项目使用Stanford Dogs数据集,将图像分类任务转化为目标检测任务。主要内容包括:数据预处理(XML标注转换为YOLO格式)、YOLOv8模型训练与测试(包含训练脚本编写和推理实现),以及基于Tkinter的图形界面开发。该项目技术链条完整,涵盖检测、分割等多任务支持,适合作为计算机视觉方向的毕业设计选题,兼具技术深度和展示效果。

LXY_LOVE36的博客 96

【人脸识别/轻量级模型】MobileFaceNet:适用于人脸识别的轻量级网络模型(文末附pytorch代码)

MobileFaceNet:用于人脸识别的轻量级网络模型

Roaddd的博客 6989

在listview中实现一个可以悬浮在listview顶部且可以被下一个titleBar推动并取代顶部titleBar

1.实现带首字母Title的ListView 重点在MyAdapter的注释 MainActivity.java public class MainActivity extends Activity { private MyAdapter mAdapter; private ListView mListView; private List mList; @Over

XDLinAtS的专栏 2650

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

android list 排序_Android使用ListView中实现置顶功能

在项目中实现了ListView置顶的功能其实实现起来还是挺简单的,核心思想是改变其adapter里的数据排序。效果如图哈那么开始吧1 首先你要实现ListView吧,这个很简单,就不多说了,其次是要自己继承 Arrayadapter,因为要用到数据的排序,所以使用Arrayadapter绑定你的数据。 public SessionItemAdapter extends ArrayAdap...

weixin_34191434的博客 616

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

在C#中实现对ListView点击列标题自动排序功能

首先定义一个ListViewHelper类,代码如下: using System;using System.Collections;using System.Data;using System.Windows.Forms;using System.Drawing; namespace TOA.Common{ /// <summary> /// 模块编号...

dcke31608的博客 155

Flutter ListView核心机制与性能优化实践

ListView作为移动应用开发中的基础滚动组件,通过懒加载和动态回收机制实现高效渲染。其核心原理是基于视窗技术仅构建可见区域内的子组件,配合生命周期管理确保内存高效使用。在Flutter开发中,ListView.builder构造方式特别适合处理大数据集,通过itemExtent预定义子项尺寸能显著提升滚动性能。实际工程中常应用于社交动态流、商品列表等场景,结合ScrollController可实现精确的滚动位置控制。性能优化方面,合理设置cacheExtent预加载区域和避免itemBuilder中的不

weixin_33722405的博客 379

android列表标题置顶功能,Android 在ListView中实现置顶功能

在项目中实现了ListView置顶的功能,所以自己打算写一下博客记录下来。其实实现起来还是挺简单的,核心思想是改变其adapter里的数据排序。效果如图哈那么开始吧1 首先你要实现ListView吧,这个很简单,就不多说了,其次是要自己继承 Arrayadapter,因为要用到数据的排序,所以使用Arrayadapter绑定你的数据。public SessionItemAdapter ...

weixin_42236014的博客 555

android点击置顶,Android在ListView中实现置顶功能

在项目中实现了ListView置顶的功能,所以自己打算写一下博客记录下来。其实实现起来还是挺简单的,核心思想是改变其adapter里的数据排序。效果如图哈那么开始吧1 首先你要实现ListView吧,这个很简单,就不多说了,其次是要自己继承 Arrayadapter,因为要用到数据的排序,所以使用Arrayadapter绑定你的数据。public SessionItemAdapter extend...

weixin_35552177的博客 476

Android ListView实现多种Item布局

前言 有时,我们的ListView的Item布局并非都是一样的,比如,我们需要一个按拼音排序的列表,如下图: 有的同学可能会说,直接把两种布局放在一个Item布局中,在getView中隐藏不用的那个布局不就行了。这种方法确实能够实现,也没什么问题,但是如果布局种类不止两种,而是20种或者更多呢?显然每次加载所有布局是很不明智的,而且很可能会造成界面卡顿。 其实,Google早想到了这一点,并提供...

weixin_33727510的博客 2852

如何高效构建Django Ninja分页与过滤列表接口?Django Ninja CRUD ListView完全指南

**Django Ninja CRUD** 是一个为 Django Ninja 提供模块化、可组合 API 视图的开源库,其内置的 **ListView** 能让你用一行声明式代码就拥有支持分页、过滤、路径参数的列表接口,彻底告别手写样板代码。本文将带你从零理解 ListView 的分页与过滤机制,快速搭建生产级列表 API 🚀 [![Django Ninja CRUD ListView 分页

gitblog_00978的博客 991

android 中 aspectj 的使用_Android使用ListView中实现置顶功能

在项目中实现了ListView置顶的功能其实实现起来还是挺简单的,核心思想是改变其adapter里的数据排序。效果如图哈那么开始吧1 首先你要实现ListView吧,这个很简单,就不多说了,其次是要自己继承 Arrayadapter,因为要用到数据的排序,所以使用Arrayadapter绑定你的数据。 public SessionItemAdapter extends ArrayAdap...

weixin_39562327的博客 69
下一篇: wifi信道,相信也有朋友对如何获取wifi信道感到困惑.
「已注销」
博客等级 码龄14年 8粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值