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);// WifiState state = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();if (state == State.CONNECTED || state == State.CONNECTING) {return STATE_WIFI;}// 3Gstate = 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-conditionreturn;}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 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 value) {mEditor.putStringSet(key, value);return mEditor.commit();}public String getString(String key, String value) {return mSharedPreferences.getString(key, value);}public ArrayList getStringArrayList(String key, int size) {ArrayList al = new ArrayList();int loop;if (size > 4)loop = 4;elseloop = 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 getStringSet(String key, Set 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();}}