DevStore首页 > DEV资源 > 源码下载 > 源码详情

高仿淘宝客户端

 
zhengjiajian | 2015-05-22 20:54    浏览量(14931)    评论(33)    收藏(73)
功能分类:生活 支持平台:Android 运行环境:Eclipse
开发语言:Java 开发工具:Eclipse 源码大小:13.60MB
下载源码 3505 人下载

源码简介

仿淘宝安卓客户端的demo源码,主要实现了:商品的基本展示、宝贝详情,图片展示的放大缩小功能、界面之间切换的动画、购物车多项删除、弹窗的动画效果、首页广告的轮播效果、获得本机具有传感器的列表、listView的上拉刷新,下拉加载功能、二维码扫描、刮刮乐等功能和效果。(小编温馨提示:有广告哦!)

源码截图

  • 运行截图
  • 运行截图
  • 运行截图
  • 运行截图
  • 运行截图
  • 运行截图
  • 运行截图
  • 运行截图
DevStore所有源码来自用户上传分享,版权问题及牵扯到商业纠纷均与DevStore无关。

源码片段

package com.jarvis.http;
import java.util.ArrayList;
import java.util.HashMap;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.util.Log;

/**
 * @author Common Use JSON Resolve
 * @author 通用JSON解析类
 * @author 限制最深解析层数为3层
 * @author 谨慎传入解析参数
 */
public class CU_JSONResolve {
	/**
	 * 提取JSONObject的key的String类型的value
	 * 
	 * @param jO
	 * @param key
	 * @return String_value
	 */
	private static String getSTR(JSONObject jO, String key) {

		String value = "";

		if (key.equals(""))
			return value;

		try {
			if (jO.has(key))
				value = jO.getString(key);
		} catch (JSONException e) {
			Log.v("gyygyygyy------>" + key, "gyygyygyy------>CU_JSONResolveException" + e.toString());
		}

		return value.equals("null") ? "" : value;
	}

	/**
	 * 内部解析1层JSON对象
	 * 
	 * @param jO
	 * @param STR_field
	 * @return hashMap
	 */
	private static HashMap getHashMap1(JSONObject jO, String STR_field[]) {

		HashMap hashMap = new HashMap();

		if (STR_field == null)
			return hashMap;

		if (STR_field != null && STR_field.length != 0)
			for (int i = 0; i < STR_field.length; i++)
				hashMap.put(STR_field[i], getSTR(jO, STR_field[i]));

		return hashMap;
	}

	/**
	 * 内部解析2层JSON对象
	 * 
	 * @param jO
	 * @param STR1_field
	 * @param LIST1_field
	 * @param aL_STR2_field
	 * @return
	 */
	private static HashMap getHashMap2(JSONObject jO, String STR1_field[], String LIST1_field[], ArrayList aL_STR2_field) {

		HashMap hashMap = new HashMap();

		if (STR1_field == null && LIST1_field == null)
			return hashMap;

		if (STR1_field != null && STR1_field.length != 0)
			for (int i = 0; i < STR1_field.length; i++)
				hashMap.put(STR1_field[i], getSTR(jO, STR1_field[i]));

		if (LIST1_field != null && LIST1_field.length != 0)
			if (aL_STR2_field != null && aL_STR2_field.size() == LIST1_field.length)
				for (int i = 0; i < LIST1_field.length; i++)
					if (aL_STR2_field.get(i) != null && aL_STR2_field.get(i).length != 0)
						hashMap.put(LIST1_field[i], getLIST1(jO, LIST1_field[i], aL_STR2_field.get(i)));
		return hashMap;
	}

	/**
	 * 提取JSONObject的key的1层LIST类型的value
	 * 
	 * @param jO
	 * @param key
	 * @param STR_field
	 * @return List_value
	 */
	private static ArrayList> getLIST1(JSONObject jO, String key, String STR_field[]) {

		ArrayList> value = new ArrayList>();

		if (key.equals(""))
			return value;

		try {
			if (jO.has(key)) {
				JSONArray jA = jO.getJSONArray(key);
				if (jA != null && jA.length() != 0)
					for (int i = 0; i < jA.length(); i++) {
						JSONObject jO_item = jA.getJSONObject(i);
						value.add(getHashMap1(jO_item, STR_field));
					}
			}
		} catch (JSONException e) {
			Log.v("gyygyygyy------>" + key, "gyygyygyy------>CU_JSONResolveException" + e.toString());
			try {
				JSONObject jsonobject = jO.getJSONObject(key);
				value.add(getHashMap1(jsonobject, STR_field));
			} catch (JSONException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}

		return value;
	}

	/**
	 * 提取JSONObject的key的2层LIST类型的value
	 * 
	 * @param jO
	 * @param key
	 * @param STR1_field
	 * @param aL_LIST1_field
	 * @param aLL_STR2_field
	 * @return List_value
	 */
	private static ArrayList> getLIST2(JSONObject jO, String key, String STR1_field[], ArrayList aL_LIST1_field, ArrayList> aLL_STR2_field) {

		ArrayList> value = new ArrayList>();

		if (key.equals(""))
			return value;

		try {
			if (jO.has(key)) {
				JSONArray jA = jO.getJSONArray(key);
				if (jA != null && jA.length() != 0)
					for (int i = 0; i < jA.length(); i++) {
						JSONObject jO_item = jA.getJSONObject(i);
						value.add(getHashMap2(jO_item, STR1_field, aL_LIST1_field.get(0), aLL_STR2_field.get(0)));
					}
			}
		} catch (JSONException e) {
			Log.v("gyygyygyy------>" + key, "gyygyygyy------>CU_JSONResolveException" + e.toString());
		}

		return value;
	}

	/**
	 * 解析完整的1层JSON对象
	 * 
	 * @param jsonStr
	 *            未解析的JSON字符串
	 * @param STR1_field
	 *            第一层String类型的key数组
	 * @return HashMap
	 * @param 以下是传参示例
	 *            ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
	 * @param → String STR1_field[] =
	 *        {"field0","field1","field2","field3","field4"};
	 * @param 以上是传参示例
	 *            ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
	 */

	public static HashMap parseHashMap1(String jsonStr, String STR1_field[]) {
		HashMap hashMap = new HashMap();
		try {
			if (jsonStr == null)
				return hashMap;

			if (STR1_field == null)
				return hashMap;

			JSONObject jO0 = new JSONObject(jsonStr);
			if (jO0.has("success"))
				if (!jO0.getBoolean("success"))
					return hashMap;

			if (STR1_field != null && STR1_field.length != 0)
				for (int i = 0; i < STR1_field.length; i++)
					hashMap.put(STR1_field[i], getSTR(jO0, STR1_field[i]));

		} catch (JSONException e) {
			Log.v("gyygyygyygyy------>", "gyygyygyygyy3------>CU_JSONResolveException" + e.toString());
		}
		return hashMap;
	}

	/**
	 * 解析完整的2层JSON对象:LIST1_field的length必须和aL_STR2_field的size相等
	 * 
	 * @param jsonStr
	 *            未解析的JSON字符串
	 * @param STR1_field
	 *            第一层String类型的key数组
	 * @param LIST1_field
	 *            第一层List类型的key数组
	 * @param aL_STR2_field
	 *            第二层String类型的key列表(列表项为String[]:一层LIST1_field对应的String类型的key数组)
	 * @param 以下是传参示例
	 *            ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
	 * @param //一层5个String2个list,2层分别为3个String和4个String(传参务必相互对应)
	 * @param → String STR1_field[] =
	 *        {"str1_0","str1_1","str1_2","str1_3","str1_4"};
	 * @param → String LIST1_field[] = {"list1_0","list1_1"};
	 * @param → ArrayList$String[]% aL_STR2_field = new
	 *        ArrayList$String[]%();//$和%换尖扩号
	 * @param → String STR2_field0[] = { "str2_0_0", "str2_0_1", "str2_0_2"};
	 * @param → String STR2_field1[] = { "str2_1_0", "str2_1_1", "str2_1_2",
	 *        "str2_1_3"};
	 * @param → aL_STR2_field.add(STR2_field0);
	 * @param → aL_STR2_field.add(STR2_field1);
	 * @param 以上是传参示例
	 *            ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
	 * @return HashMap
	 */
	public static HashMap parseHashMap2(String jsonStr, String STR1_field[], String LIST1_field[], ArrayList aL_STR2_field) {

		HashMap hashMap = new HashMap();

		try {
			if (jsonStr == null)
				return hashMap;

			if (STR1_field == null && LIST1_field == null)
				return hashMap;

			JSONObject jO0 = new JSONObject(jsonStr);
//			if (jO0.has("success"))
//				if (!jO0.getBoolean("success"))
//					return hashMap;

			if (STR1_field != null && STR1_field.length != 0)
				for (int i = 0; i < STR1_field.length; i++)
					hashMap.put(STR1_field[i], getSTR(jO0, STR1_field[i]));

			if (LIST1_field != null && LIST1_field.length != 0)
				if (aL_STR2_field != null && aL_STR2_field.size() == LIST1_field.length)
					for (int i = 0; i < LIST1_field.length; i++)
						if (aL_STR2_field.get(i) != null && aL_STR2_field.get(i).length != 0)
							hashMap.put(LIST1_field[i], getLIST1(jO0, LIST1_field[i], aL_STR2_field.get(i)));

		} catch (JSONException e) {
			Log.v("gyygyygyygyy------>", "gyygyygyygyy4------>CU_JSONResolveException" + e.toString());
		}
		return hashMap;
	}

	/**
	 * 解析完整的3层JSON对象:谨慎使用
	 * 
	 * @param jsonStr
	 *            未解析的JSON字符串
	 * @param STR1_field
	 *            第一层String类型的key数组
	 * @param LIST1_field
	 *            第一层List类型的key数组
	 * @param aL_STR2_field
	 *            第二层String类型的key列表(列表项为String[]:一层LIST1_field对应的String类型的key数组)
	 * @param aL_LIST2_field
	 *            第二层List类型key列表,同aL_STR2_field
	 * @param aL_STR3_field
	 *            第三层String类型的key列表套列表(ArrayList$ArrayList$String[]%%)//$和%换尖扩号
	 * @param 以下是传参示例
	 *            ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
	 * @param 
	 *        //一层2个String1个list,2层分别为4个String和2个List,3层分别为(分别为6个String和5个String)
	 *        和()和()...
	 * @param → String STR1_field[] = {"str1_0","str1_1"};
	 * @param → String LIST1_field[] = {"list1_0"};
	 * @param → ArrayList$String[]% aL_STR2_field = new
	 *        ArrayList$String[]%();//$和%换尖扩号
	 * @param → String STR2_field0[] = { "str2_0_0", "str2_0_1",
	 *        "str2_0_2","str2_0_3"};
	 * @param → aL_STR2_field.add(STR2_field0);
	 * @param → ArrayList$String[]% aL_LIST2_field = new
	 *        ArrayList$String[]%();//$和%换尖扩号
	 * @param → String LIST2_field0[] = { "list2_0_0", "list2_0_1"};
	 * @param → aL_LIST2_field.add(LIST2_field0);
	 * @param → ArrayList$ArrayList$String[]%% aLL_STR3_field = new
	 *        ArrayList$ArrayList$String[]%%();//$和%换尖扩号
	 * @param → ArrayList$String[]% aL_STR3_0_field0 = new
	 *        ArrayList$String[]%();//$和%换尖扩号
	 * @param → String STR3_0_field0[] = { "str3_0_0_0", "str3_0_0_1",
	 *        "str3_0_0_2", "str3_0_0_3", "str3_0_0_4", "str3_0_0_5"};
	 * @param → aL_STR3_0_field0.add(STR3_0_field0);
	 * @param → ArrayList$String[]% aL_STR3_1_field0 = new
	 *        ArrayList$String[]%();//$和%换尖扩号
	 * @param → String STR3_1_field0[] = { "str3_1_0_0", "str3_1_0_1",
	 *        "str3_1_0_2", "str3_1_0_3", "str3_1_0_4"};
	 * @param → aL_STR3_1_field0.add(STR3_1_field0);
	 * @param → aLL_STR3_field.add(aL_STR3_0_field0);
	 * @param → aLL_STR3_field.add(aL_STR3_1_field0);
	 * @param 以上是传参示例
	 *            ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
	 * @return HashMap
	 */
	public static HashMap parseHashMap3(String jsonStr, String STR1_field[], String LIST1_field[], ArrayList aL_STR2_field, ArrayList aL_LIST2_field, ArrayList> aLL_STR3_field) {

		HashMap hashMap = new HashMap();

		try {
			if (jsonStr == null)
				return hashMap;

			if (STR1_field == null && LIST1_field == null)
				return hashMap;

			JSONObject jO0 = new JSONObject(jsonStr);
			if (jO0.has("success"))
				if (!jO0.getBoolean("success"))
					return hashMap;

			if (STR1_field != null && STR1_field.length != 0)
				for (int i = 0; i < STR1_field.length; i++)
					hashMap.put(STR1_field[i], getSTR(jO0, STR1_field[i]));

			if (LIST1_field != null && LIST1_field.length != 0)
				if (aL_STR2_field != null && aL_STR2_field.size() == LIST1_field.length)
					for (int i = 0; i < LIST1_field.length; i++)
						if (aL_STR2_field.get(i) != null && aL_STR2_field.get(i).length != 0)
							hashMap.put(LIST1_field[i], getLIST2(jO0, LIST1_field[i], aL_STR2_field.get(i), aL_LIST2_field, aLL_STR3_field));

		} catch (JSONException e) {
			Log.v("gyygyygyygyy------>", "gyygyygyygyy5------>CU_JSONResolveException" + e.toString());
		}
		return hashMap;
	}
}
  •   赞(10) 赞 +1 赞(10) 已赞
  •   收藏(73) 收藏 +1 已收藏 取消
  •   下载(3505)
评论(33)
北去南开

北去南开 2017-11-30 23:16:47

请问我一直是这个状态怎么解决啊
Refreshing My Taobao Test Gradle project
回复(0) 赞(0) 赞(1)
herosuncy

herosuncy 2017-05-01 23:33:37

很有借鉴价值,而且代码很完整,工程也好加载!
回复(0) 赞(0) 赞(1)
liyun1030

liyun1030 2016-10-13 10:01:19

大爱楼主,太好了
回复(0) 赞(1) 赞(2)
LIXIAsb

LIXIAsb 2016-05-13 12:44:07

求教 怎么使用呀、 导入eclipse好多错
回复(0) 赞(0) 赞(1)
LIXIAsb

LIXIAsb 2016-05-12 20:58:48

我下载下来的,怎么不能用 没有R文件
回复(0) 赞(0) 赞(1)
  • 推荐
  • 审核
  • 收录
  • 获取活力值

源码上传作者

  • 122 能力值
  • 59 源码
  • 0 评测
  • 0 资料

热门源码