首页 > 代码库 > 实用代码4

实用代码4

1、

	/**	 * 获取指定程序下所有Action为Intent.ACTION_MAIN的Activity	 * 	 * @param context	 *            上下文对象	 * @param pkg	 *            包名	 * @return 指定程序下所有Action为Intent.ACTION_MAIN的Activity的集合	 */	public static List<String> getActivities(Context context, String pkg) {		List<String> result = new ArrayList<String>();		Intent intent = new Intent(Intent.ACTION_MAIN, null);		intent.setPackage(pkg);		List<ResolveInfo> list = context.getPackageManager().queryIntentActivities(intent, 0);		if (DataUtil.isEmpty(list)) {			return null;		}		for (ResolveInfo info : list) {			result.add(info.activityInfo.name);		}		return result;	}

2、

/**	 * 获取指定已安装的APK的安装路径(如:/data/app/com.home.util-2.apk)	 * 	 * @param context	 *            上下文对象	 * @param pkg	 *            包名	 * @return 指定APK的安装路径	 */	public static String getAppSourceDir(Context context, String pkg) {		PackageManager pm = context.getPackageManager();		List<ApplicationInfo> list = pm.getInstalledApplications(0);		if (DataUtil.isEmpty(list)) {			return null;		}		for (ApplicationInfo appInfo : list) {			if (appInfo.packageName.equals(pkg)) {				return appInfo.sourceDir;			}		}		return null;	}


3、

	/**	 * 泛型的集合转为数组	 * 	 * @param cls	 *            类模板	 * @param list	 *            源集合	 * @return 转换后的数组	 */	@SuppressWarnings("unchecked")	public static <T> T[] listToArray(Class<?> cls, List<T> list) {		if (isEmpty(list)) {			return (T[]) Array.newInstance(cls, 0);		}		return list.toArray((T[]) Array.newInstance(cls, list.size()));	}


4、

	/**	 * 检测文本是否全为中文	 * 	 * @param text	 *            文本	 * @return 全为中文返回true,否则返回false	 */	public static boolean isChinese(String text) {		if (isEmpty(text)) {			return false;		}		return text.matches("[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+");	}


5、

	/**	 * 检测文本中是否包含汉字	 * 	 * @param text	 *            文本	 * @return 包含返回true,否则返回false	 */	public static boolean isHasChinese(String text) {		final String format = "[\\u4E00-\\u9FA5\\uF900-\\uFA2D]";		boolean result = false;		Pattern pattern = Pattern.compile(format);		Matcher matcher = pattern.matcher(text);		result = matcher.find();		return result;	}


6、

	/**	 * 保存ListView的当前位置	 * 	 * @param context	 *            上下文对象	 * @param lv	 *            ListView实例	 * 	 */	public static void saveListViewCurPos(Context context, ListView lv) {		int pos = lv.getFirstVisiblePosition();		View v = lv.getChildAt(0);		int top = (v == null) ? 0 : v.getTop();		SharedUtil.saveInt(context, Constant.DEFAULT_SHARE_NAME, "pos", pos);		SharedUtil.saveInt(context, Constant.DEFAULT_SHARE_NAME, "top", top);	}	/**	 * 恢复ListView的之前位置	 * 	 * @param context	 *            上下文对象	 * @param lv	 *            ListView实例	 * @return 恢复成功返回true,否则返回false	 */	public static boolean resumeListViewPos(Context context, ListView lv) {		int pos = SharedUtil.getInt(context, Constant.DEFAULT_SHARE_NAME, "pos", -1);		int top = SharedUtil.getInt(context, Constant.DEFAULT_SHARE_NAME, "top", -1);		if (pos == -1 || top == -1) {			return false;		}		lv.setSelectionFromTop(pos, top);		return true;	}


7、

	/**	 * 获取手机ip地址	 * 	 * @param context	 *            上下文对象	 * @return ip地址	 */	@SuppressWarnings("deprecation")	public static String getPhoneIp(Context context) {		int ip = getWifiManager(context).getConnectionInfo().getIpAddress();		return android.text.format.Formatter.formatIpAddress(ip);	}


8、

	/**	 * 文件夹排序(先文件夹排序后文件排序)	 * 	 * @param files	 *            文件数组	 */	public static void sortFiles(File[] files) {		Arrays.sort(files, new Comparator<File>() {			@Override			public int compare(File file1, File file2) {				boolean l1 = file1.isDirectory();				boolean l2 = file2.isDirectory();				if (l1 && !l2)					return -1;				else if (!l1 && l2)					return 1;				else {					return file1.getName().compareTo(file2.getName());				}			}		});	}



 

实用代码4