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

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

1.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;  
    }  
  
}  
2. NetWorkUtil(网络类):

[java] view plaincopyprint?
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;  
    }  
}  
3.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);  
    }  
}  
4.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();  
    }  
  
本文是转账的,地址是: http://blog.csdn.net/rain_butterfly/article/details/39525601



你可能感兴趣的:(Android 最常用的快速开发工具类)