码迷,mamicode.com
首页 > 移动开发 > 详细

Android 最常用的快速开发工具类

时间:2014-09-24 19:07:37      阅读:305      评论:0      收藏:0      [点我收藏+]

标签:android开发   工具类   

       Android开发的工具类能很好的封装一些常用的操作,以后使用起来也非常方便,我把我经常使用的工具类分享给大家。

FileCache:

package com.pztuan.common.util;

import java.io.File;
import android.content.Context;

public class FileCache {
	private File cacheDir;

	public FileCache(Context context) {
		// 判断外存SD卡挂载状态,如果挂载正常,创建SD卡缓存文件夹
		if (android.os.Environment.getExternalStorageState().equals(
				android.os.Environment.MEDIA_MOUNTED)) {
			cacheDir = new File(
					android.os.Environment.getExternalStorageDirectory(),
					"PztCacheDir");
		} else {
			// SD卡挂载不正常,获取本地缓存文件夹(应用包所在目录)
			cacheDir = context.getCacheDir();
		}
		if (!cacheDir.exists()) {
			cacheDir.mkdirs();
		}
	}

	public File getFile(String url) {
		String fileName = String.valueOf(url.hashCode());
		File file = new File(cacheDir, fileName);
		return file;
	}

	public void clear() {
		File[] files = cacheDir.listFiles();
		for (File f : files)
			f.delete();
	}

	public String getCacheSize() {
		long size = 0;
		if (cacheDir.exists()) {
			File[] files = cacheDir.listFiles();
			for (File f : files) {
				size += f.length();
			}
		}
		String cacheSize = String.valueOf(size / 1024 / 1024) + "M";
		return cacheSize;
	}

}

NetWorkUtil(网络类):

package com.pztuan.common.util;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.NetworkInfo.State;
import android.net.wifi.WifiManager;

import java.security.MessageDigest;

/**
 * 
 * @author suncat
 * @category 网络工具
 */
public class NetWorkUtil {
	private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
			"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
	public static final int STATE_DISCONNECT = 0;
	public static final int STATE_WIFI = 1;
	public static final int STATE_MOBILE = 2;

	public static String concatUrlParams() {

		return null;
	}

	public static String encodeUrl() {

		return null;
	}

	public static boolean isNetWorkConnected(Context context) {
		ConnectivityManager cm = (ConnectivityManager) context
				.getSystemService(Context.CONNECTIVITY_SERVICE);
		NetworkInfo[] nis = cm.getAllNetworkInfo();
		if (nis != null) {
			for (NetworkInfo ni : nis) {
				if (ni != null) {
					if (ni.isConnected()) {
						return true;
					}
				}
			}
		}

		return false;
	}

	public static boolean isWifiConnected(Context context) {
		WifiManager wifiMgr = (WifiManager) context
				.getSystemService(Context.WIFI_SERVICE);
		boolean isWifiEnable = wifiMgr.isWifiEnabled();

		return isWifiEnable;
	}

	public static boolean isNetworkAvailable(Context context) {
		ConnectivityManager cm = (ConnectivityManager) context
				.getSystemService(Context.CONNECTIVITY_SERVICE);
		NetworkInfo networkInfo = cm.getActiveNetworkInfo();
		if (networkInfo != null) {
			return networkInfo.isAvailable();
		}

		return false;
	}

	private static String byteArrayToHexString(byte[] b) {
		StringBuffer resultSb = new StringBuffer();
		for (int i = 0; i < b.length; i++) {
			resultSb.append(byteToHexString(b[i]));
		}
		return resultSb.toString();
	}

	private static String byteToHexString(byte b) {
		int n = b;
		if (n < 0)
			n = 256 + n;
		int d1 = n / 16;
		int d2 = n % 16;
		return hexDigits[d1] + hexDigits[d2];
	}

	public static String md5Encode(String origin) {
		String resultString = null;

		try {
			resultString = new String(origin);
			MessageDigest md = MessageDigest.getInstance("MD5");
			resultString = new String(md.digest(resultString.getBytes()));
		} catch (Exception ex) {
			ex.printStackTrace();
		}

		return resultString;
	}

	public static String md5EncodeToHexString(String origin) {
		String resultString = null;

		try {
			resultString = new String(origin);
			MessageDigest md = MessageDigest.getInstance("MD5");
			resultString = byteArrayToHexString(md.digest(resultString
					.getBytes()));
		} catch (Exception ex) {
			ex.printStackTrace();
		}

		return resultString;
	}

	public static int getNetworkState(Context context) {
		ConnectivityManager connManager = (ConnectivityManager) context
				.getSystemService(Context.CONNECTIVITY_SERVICE);

		// Wifi
		State state = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
				.getState();
		if (state == State.CONNECTED || state == State.CONNECTING) {
			return STATE_WIFI;
		}

		// 3G
		state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
				.getState();
		if (state == State.CONNECTED || state == State.CONNECTING) {
			return STATE_MOBILE;
		}
		return STATE_DISCONNECT;
	}
}

Tools(常用小功能:号码正则匹配、日期计算、获取imei号、计算listview高度):


package com.pztuan.common.util;

import java.security.MessageDigest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Environment;
import android.telephony.TelephonyManager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;

@SuppressLint("DefaultLocale")
public class Tools {

	private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
			"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };

	public static String byteArrayToHexString(byte[] b) {
		StringBuffer resultSb = new StringBuffer();
		for (int i = 0; i < b.length; i++) {
			resultSb.append(byteToHexString(b[i]));
		}
		return resultSb.toString();
	}

	private static String byteToHexString(byte b) {
		int n = b;
		if (n < 0)
			n = 256 + n;
		int d1 = n / 16;
		int d2 = n % 16;
		return hexDigits[d1] + hexDigits[d2];
	}

	/**
	 * md5 加密
	 * 
	 * @param origin
	 * @return
	 */
	public static String md5Encode(String origin) {
		String resultString = null;
		try {
			resultString = new String(origin);
			MessageDigest md = MessageDigest.getInstance("MD5");
			resultString = byteArrayToHexString(md.digest(resultString
					.getBytes()));
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return resultString;
	}

	/**
	 * 手机号码格式匹配
	 * 
	 * @param mobiles
	 * @return
	 */
	public static boolean isMobileNO(String mobiles) {
		Pattern p = Pattern
				.compile("^((13[0-9])|(15[^4,\\D])|(18[0,1,3,5-9]))\\d{8}$");
		Matcher m = p.matcher(mobiles);
		System.out.println(m.matches() + "-telnum-");
		return m.matches();
	}

	/**
	 * 是否含有指定字符
	 * 
	 * @param expression
	 * @param text
	 * @return
	 */
	private static boolean matchingText(String expression, String text) {
		Pattern p = Pattern.compile(expression);
		Matcher m = p.matcher(text);
		boolean b = m.matches();
		return b;
	}

	/**
	 * 邮政编码
	 * 
	 * @param zipcode
	 * @return
	 */
	public static boolean isZipcode(String zipcode) {
		Pattern p = Pattern.compile("[0-9]\\d{5}");
		Matcher m = p.matcher(zipcode);
		System.out.println(m.matches() + "-zipcode-");
		return m.matches();
	}

	/**
	 * 邮件格式
	 * 
	 * @param email
	 * @return
	 */
	public static boolean isValidEmail(String email) {
		Pattern p = Pattern
				.compile("^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$");
		Matcher m = p.matcher(email);
		System.out.println(m.matches() + "-email-");
		return m.matches();
	}

	/**
	 * 固话号码格式
	 * 
	 * @param telfix
	 * @return
	 */
	public static boolean isTelfix(String telfix) {
		Pattern p = Pattern.compile("d{3}-d{8}|d{4}-d{7}");
		Matcher m = p.matcher(telfix);
		System.out.println(m.matches() + "-telfix-");
		return m.matches();
	}

	/**
	 * 用户名匹配
	 * 
	 * @param name
	 * @return
	 */
	public static boolean isCorrectUserName(String name) {
		Pattern p = Pattern.compile("([A-Za-z0-9]){2,10}");
		Matcher m = p.matcher(name);
		System.out.println(m.matches() + "-name-");
		return m.matches();
	}

	/**
	 * 密码匹配,以字母开头,长度 在6-18之间,只能包含字符、数字和下划线。
	 * 
	 * @param pwd
	 * @return
	 * 
	 */
	public static boolean isCorrectUserPwd(String pwd) {
		Pattern p = Pattern.compile("\\w{6,18}");
		Matcher m = p.matcher(pwd);
		System.out.println(m.matches() + "-pwd-");
		return m.matches();
	}

	/**
	 * 检查是否存在SDCard
	 * 
	 * @return
	 */
	public static boolean hasSdcard() {
		String state = Environment.getExternalStorageState();
		if (state.equals(Environment.MEDIA_MOUNTED)) {
			return true;
		} else {
			return false;
		}
	}

	/**
	 * 计算剩余日期
	 * 
	 * @param remainTime
	 * @return
	 */
	public static String calculationRemainTime(String endTime, long countDown) {

		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		try {
			Date now = new Date(System.currentTimeMillis());// 获取当前时间
			Date endData = df.parse(endTime);
			long l = endData.getTime() - countDown - now.getTime();
			long day = l / (24 * 60 * 60 * 1000);
			long hour = (l / (60 * 60 * 1000) - day * 24);
			long min = ((l / (60 * 1000)) - day * 24 * 60 - hour * 60);
			long s = (l / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
			return "剩余" + day + "天" + hour + "小时" + min + "分" + s + "秒";
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return "";
	}

	public static void showLongToast(Context act, String pMsg) {
		Toast toast = Toast.makeText(act, pMsg, Toast.LENGTH_LONG);
		toast.show();
	}

	public static void showShortToast(Context act, String pMsg) {
		Toast toast = Toast.makeText(act, pMsg, Toast.LENGTH_SHORT);
		toast.show();
	}

	/**
	 * 获取手机Imei号
	 * 
	 * @param context
	 * @return
	 */
	public static String getImeiCode(Context context) {
		TelephonyManager tm = (TelephonyManager) context
				.getSystemService(Context.TELEPHONY_SERVICE);
		return tm.getDeviceId();
	}

	/**
	 * @author sunglasses
	 * @param listView
	 * @category 计算listview的高度
	 */
	public static void setListViewHeightBasedOnChildren(ListView listView) {
		ListAdapter listAdapter = listView.getAdapter();
		if (listAdapter == null) {
			// pre-condition
			return;
		}

		int totalHeight = 0;
		for (int i = 0; i < listAdapter.getCount(); i++) {
			View listItem = listAdapter.getView(i, null, listView);
			listItem.measure(0, 0);
			totalHeight += listItem.getMeasuredHeight();
		}

		ViewGroup.LayoutParams params = listView.getLayoutParams();
		params.height = totalHeight
				+ (listView.getDividerHeight() * (listAdapter.getCount() - 1));
		listView.setLayoutParams(params);
	}
}

SharedPreferencesUtil:

package com.pztuan.db;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.util.Log;

import java.util.ArrayList;
import java.util.Set;

public class SharedPreferencesUtil {
	private static final String TAG = "PZTuan.SharePreferencesUtil";
	private static final String SHAREDPREFERENCE_NAME = "sharedpreferences_pztuan";

	private static SharedPreferencesUtil mInstance;

	private static SharedPreferences mSharedPreferences;

	private static SharedPreferences.Editor mEditor;

	public synchronized static SharedPreferencesUtil getInstance(Context context) {
		if (mInstance == null) {
			mInstance = new SharedPreferencesUtil(context);
		}

		return mInstance;
	}

	private SharedPreferencesUtil(Context context) {
		mSharedPreferences = context.getSharedPreferences(
				SHAREDPREFERENCE_NAME, Context.MODE_PRIVATE);
		mEditor = mSharedPreferences.edit();
	}

	public synchronized boolean putString(String key, String value) {
		mEditor.putString(key, value);
		return mEditor.commit();
	}

	public synchronized boolean putStringArrayList(String key,
			ArrayList<String> value) {

		for (int j = 0; j < value.size() - 1; j++) {
			if (value.get(value.size() - 1).equals(value.get(j))) {
				value.remove(j);
			}
		}
		mEditor.putInt("citySize", value.size());

		if (value.size() == 4) {
			mEditor.putString(key + 0, value.get(3));
			mEditor.putString(key + 1, value.get(0));
			mEditor.putString(key + 2, value.get(1));
		} else if (value.size() == 3) {
			mEditor.putString(key + 0, value.get(2));
			mEditor.putString(key + 1, value.get(0));
			mEditor.putString(key + 2, value.get(1));
		} else {
			for (int i = 0; i < value.size(); i++) {
				mEditor.putString(key + i, value.get(value.size() - 1 - i));
			}

		}
		return mEditor.commit();
	}

	public synchronized boolean putInt(String key, int value) {
		mEditor.putInt(key, value);
		return mEditor.commit();
	}

	public synchronized boolean putLong(String key, long value) {
		mEditor.putLong(key, value);
		return mEditor.commit();
	}

	public synchronized boolean putFloat(String key, float value) {
		mEditor.putFloat(key, value);
		return mEditor.commit();
	}

	public synchronized boolean putBoolean(String key, boolean value) {
		mEditor.putBoolean(key, value);
		return mEditor.commit();
	}

	public synchronized boolean putStringSet(String key, Set<String> value) {
		mEditor.putStringSet(key, value);
		return mEditor.commit();
	}

	public String getString(String key, String value) {
		return mSharedPreferences.getString(key, value);
	}

	public ArrayList<String> getStringArrayList(String key, int size) {
		ArrayList<String> al = new ArrayList<String>();
		int loop;
		if (size > 4)
			loop = 4;
		else
			loop = size;
		for (int i = 0; i < loop; i++) {
			String name = mSharedPreferences.getString(key + i, null);
			al.add(name);
		}
		return al;
	}

	public int getInt(String key, int value) {
		return mSharedPreferences.getInt(key, value);
	}

	public long getLong(String key, long value) {
		return mSharedPreferences.getLong(key, value);
	}

	public float getFloat(String key, float value) {
		return mSharedPreferences.getFloat(key, value);
	}

	public boolean getBoolean(String key, boolean value) {
		return mSharedPreferences.getBoolean(key, value);
	}

	public Set<String> getStringSet(String key, Set<String> value) {
		return mSharedPreferences.getStringSet(key, value);
	}

	public boolean remove(String key) {
		mEditor.remove(key);
		return mEditor.commit();
	}

	private static final String PREFERENCES_AUTO_LOGIN = "yyUserAutoLogin";
	private static final String PREFERENCES_USER_NAME = "yyUserName";
	private static final String PREFERENCES_USER_PASSWORD = "yyUserPassword";

	public boolean isAutoLogin() {
		return mSharedPreferences.getBoolean(PREFERENCES_AUTO_LOGIN, false);
	}

	public String getUserName() {
		return mSharedPreferences.getString(PREFERENCES_USER_NAME, "");
	}

	public String getUserPwd() {
		return mSharedPreferences.getString(PREFERENCES_USER_PASSWORD, "");
	}

	public void saveLoginInfo(Boolean autoLogin, String userName,
			String userPassword) {
		assert (mEditor != null);
		mEditor.putBoolean(PREFERENCES_AUTO_LOGIN, autoLogin);
		mEditor.putString(PREFERENCES_USER_NAME, userName);
		mEditor.putString(PREFERENCES_USER_PASSWORD, userPassword);
		mEditor.commit();
	}

	public void saveLoginPassword(String userPassword) {
		mEditor.putString(PREFERENCES_USER_PASSWORD, userPassword);
		mEditor.commit();
	}

	public void saveLoginUserid(String userid) {
		mEditor.putString("userid", userid);
		mEditor.commit();
	}

	public void clearUserInfo() {
		assert (mEditor != null);
		mEditor.putBoolean(PREFERENCES_AUTO_LOGIN, false);
		mEditor.putString(PREFERENCES_USER_NAME, "");
		mEditor.putString(PREFERENCES_USER_PASSWORD, "");
		mEditor.putString("userid", "");
		mEditor.commit();
	}

}

如有问题请留言,转载注明出处。

Android 最常用的快速开发工具类

标签:android开发   工具类   

原文地址:http://blog.csdn.net/rain_butterfly/article/details/39525601

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!