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(); } }
如有问题请留言,转载注明出处。
时间: 2024-09-29 13:26:58