Android PullToRefreshListView的刷新与分页

     经过多天的试验,今天这个PullToRefreshListView终于完美了。

     以前的同事写的,代码多,时常出现重复现象,及刷新时,页面出现闪空。

    现在的做法是,所有数据下载时直接保存到数据库,然而读取。

    以下为不完全代码:

    数据库方面:

/**
	 * 插入数据(不同组里的数据),带总数
	 * @param type
	 * @param cacheData
	 * @param createTime
	 * @return
	 */
	public synchronized long commonInsertData(int type,byte[] cacheData,int count,long id,long createTime){
		SQLiteDatabase db = getWritableDatabase();
		ContentValues cv = new ContentValues();
		cv.put("type",type);
		cv.put("listId",id);
		cv.put("count",count);
		cv.put("cacheData",cacheData);
		cv.put("createTime",createTime);
		return db.insert("commonDatabase",null,cv);		
	}
	
	/**
	 * 根据Type 和ID 修改数据,用于有下一页的
	 * @param groupId
	 * @param type
	 * @param cacheData
	 * @return
	 */
	public synchronized long updateMembersData(int type,byte[] cacheData,int count,long id,long createTime) {
		SQLiteDatabase db = getWritableDatabase();
		String where = "type=? and listId=?";
		String[] whereValue = { String.valueOf(id), String.valueOf(type) };
		ContentValues cv = new ContentValues();
		cv.put("cacheData", cacheData);
		return db.update("commonDatabase", cv, where, whereValue);
	}
      handler操作

private void parseDataToDB(CommonList list){

		if(moreTag != 0 && commonList != null ){
		    commonList.addAll(mc.getCommonList().getCommonItem());
		    service.commonDeleteData(CommonType.COMMON_TYPE,groupID);
			service.commonInsertData(CommonType.COMMON_TYPE
,SerializeUtil.serializeObject(commonList)				          ,mc.getCommonList().getCount()
,groupID,Integer.parseInt(mc.getFans().getNext())
,System.currentTimeMillis());	
		}else{
			service.commonDeleteData(CommonType.USER_FANS,userID);
			service.commonInsertData(CommonType.USER_FANS
,SerializeUtil.serializeObject(mc.getCommonList().getCommonItem()),mc.getCommonList().getCount()				,groupID,Integer.parseInt(mc.getCommonList().getNext()),System.currentTimeMillis());
		}		
	}				




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值