项目中可能用到的一些工具类Utils

StringUtils

import java.net.URLEncoder;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Hashtable;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
* <Pre>
* String工具类,提供字符串的验证方法
* </Pre>
*
* @author cxy
* @version 1.0
*/
public class StringUtils {
 /**
  * 验证手机号码是否正确
  *
  * @param str 传入手机号码
  * @return
  */
 public static boolean isPhone(String str) {
     Pattern pattern = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(17[0-9])|(14[0-9])|(18[0,0-9]))\\d{8}$");
     Matcher m = pattern.matcher(str);
     return m.matches();
 }

 /**
  * 根据身份证验证男女
  *
  * @param idCard 身份证
  * @return
  */
 public static String checkSex(String idCard) {
     String sex = idCard.substring(16, 17);
     if (Integer.parseInt(sex) % 2 == 0) {
         sex = "女";
     } else {
         sex = "男";

     }
     return sex;
 }

 public static String checkBrithday(String idCard) {
     String birthday = null;
     String YYYY = idCard.substring(6, 10);
     String MM = idCard.substring(10, 12);
     String DD = idCard.substring(12, 14);
     return YYYY + "-" + MM + "-" + DD;

 }

 /*********************************** 身份证验证开始 ****************************************/
 /**
  * 身份证号码验证
  * 1、号码的结构
  * 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,
  * 八位数字出生日期码,三位数字顺序码和一位数字校验码。
  * 2、地址码(前六位数)
  * 表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。
  * 3、出生日期码(第七位至十四位)
  * 表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。
  * 4、顺序码(第十五位至十七位)
  * 表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,
  * 顺序码的奇数分配给男性,偶数分配给女性。
  * 5、校验码(第十八位数)
  * (1)十七位数字本体码加权求和公式 S = Sum(Ai * Wi), i = 0, ... , 16 ,先对前17位数字的权求和
  * Ai:表示第i位置上的身份证号码数字值 Wi:表示第i位置上的加权因子 Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4
  * 2 (2)计算模 Y = mod(S, 11) (3)通过模得到对应的校验码 Y: 0 1 2 3 4 5 6 7 8 9 10 校验码: 1 0
  * X 9 8 7 6 5 4 3 2
  */

 /**
  * 功能:身份证的有效验证
  *
  * @param IDStr 身份证号
  * @return 有效:返回"" 无效:返回String信息
  * @throws ParseException
  */
 @SuppressWarnings("unchecked")
 public static String iDCardValidate(String IDStr) throws ParseException {

     String errorInfo = "";// 记录错误信息
     String[] ValCodeArr = {"1", "0", "x", "9", "8", "7", "6", "5", "4",
             "3", "2"};
     String[] Wi = {"7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7",
             "9", "10", "5", "8", "4", "2"};
     String Ai = "";
     // ================ 号码的长度 15位或18位 ================
     if (IDStr.length() != 15 && IDStr.length() != 18) {
         errorInfo = "身份证号码长度应该为15位或18位。";
         return errorInfo;
     }
     // =======================(end)========================

     // ================ 数字 除最后以为都为数字 ================
     if (IDStr.length() == 18) {
         Ai = IDStr.substring(0, 17);
     } else if (IDStr.length() == 15) {
         Ai = IDStr.substring(0, 6) + "19" + IDStr.substring(6, 15);
     }
     if (isNumeric(Ai) == false) {
         errorInfo = "身份证15位号码都应为数字 ; 18位号码除最后一位外,都应为数字。";
         return errorInfo;
     }
     // =======================(end)========================

     // ================ 出生年月是否有效 ================
     String strYear = Ai.substring(6, 10);// 年份
     String strMonth = Ai.substring(10, 12);// 月份
     String strDay = Ai.substring(12, 14);// 月份
     if (isDate(strYear + "-" + strMonth + "-" + strDay) == false) {
         errorInfo = "身份证生日无效。";
         return errorInfo;
     }
     GregorianCalendar gc = new GregorianCalendar();
     SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");
     if ((gc.get(Calendar.YEAR) - Integer.parseInt(strYear)) > 150
             || (gc.getTime().getTime() - s.parse(
             strYear + "-" + strMonth + "-" + strDay).getTime()) < 0) {
         errorInfo = "身份证生日不在有效范围。";
         return errorInfo;
     }
     if (Integer.parseInt(strMonth) > 12 || Integer.parseInt(strMonth) == 0) {
         errorInfo = "身份证月份无效";
         return errorInfo;
     }
     if (Integer.parseInt(strDay) > 31 || Integer.parseInt(strDay) == 0) {
         errorInfo = "身份证日期无效";
         return errorInfo;
     }
     // =====================(end)=====================

     // ================ 地区码时候有效 ================
     Hashtable h = getAreaCode();
     if (h.get(Ai.substring(0, 2)) == null) {
         errorInfo = "身份证地区编码错误。";
         return errorInfo;
     }
     // ==============================================

     // ================ 判断最后一位的值 ================
     int TotalmulAiWi = 0;
     for (int i = 0; i < 17; i++) {
         TotalmulAiWi = TotalmulAiWi
                 + Integer.parseInt(String.valueOf(Ai.charAt(i)))
                 * Integer.parseInt(Wi[i]);
     }
     int modValue = TotalmulAiWi % 11;
     String strVerifyCode = ValCodeArr[modValue];
     Ai = Ai + strVerifyCode;

     if (IDStr.length() == 18) {
         if (Ai.equalsIgnoreCase(IDStr) == false) {
             errorInfo = "身份证无效,不是合法的身份证号码";
             return errorInfo;
         }
     } else {
         return "";
     }
     // =====================(end)=====================
     return "";
 }

 /**
  * 功能:设置地区编码
  *
  * @return Hashtable 对象
  */
 @SuppressWarnings("unchecked")
 private static Hashtable getAreaCode() {
     Hashtable hashtable = new Hashtable();
     hashtable.put("11", "北京");
     hashtable.put("12", "天津");
     hashtable.put("13", "河北");
     hashtable.put("14", "山西");
     hashtable.put("15", "内蒙古");
     hashtable.put("21", "辽宁");
     hashtable.put("22", "吉林");
     hashtable.put("23", "黑龙江");
     hashtable.put("31", "上海");
     hashtable.put("32", "江苏");
     hashtable.put("33", "浙江");
     hashtable.put("34", "安徽");
     hashtable.put("35", "福建");
     hashtable.put("36", "江西");
     hashtable.put("37", "山东");
     hashtable.put("41", "河南");
     hashtable.put("42", "湖北");
     hashtable.put("43", "湖南");
     hashtable.put("44", "广东");
     hashtable.put("45", "广西");
     hashtable.put("46", "海南");
     hashtable.put("50", "重庆");
     hashtable.put("51", "四川");
     hashtable.put("52", "贵州");
     hashtable.put("53", "云南");
     hashtable.put("54", "西藏");
     hashtable.put("61", "陕西");
     hashtable.put("62", "甘肃");
     hashtable.put("63", "青海");
     hashtable.put("64", "宁夏");
     hashtable.put("65", "新疆");
     hashtable.put("71", "台湾");
     hashtable.put("81", "香港");
     hashtable.put("82", "澳门");
     hashtable.put("91", "国外");
     return hashtable;
 }

 /**
  * 功能:判断字符串是否为数字
  *
  * @param str
  * @return
  */
 private static boolean isNumeric(String str) {
     Pattern pattern = Pattern.compile("[0-9]*");
     Matcher isNum = pattern.matcher(str);
     if (isNum.matches()) {
         return true;
     } else {
         return false;
     }
 }
 /**
  * 功能:判断字符串是否为空
  *
  * @param str
  * @return
  */
 public static boolean isBlank(String str)
 {
     if(str ==null)
         return true ;

     if("".equals(str))
         return true ;

     if("".equals(str.trim()))
         return true ;

     return false ;

 }
 /**
  * 功能:判断字符串是否不为空
  *
  * @param str
  * @return
  */
 public static boolean isNotBlank(String str)
 {
     if(str ==null)
         return false ;

     if("".equals(str))
         return false ;

     if("".equals(str.trim()))
         return false ;

     return true ;

 }


 /**
  * 功能:判断字符串是否为日期格式
  *
  * @param strDate
  * @return
  */
 public static boolean isDate(String strDate) {
     Pattern pattern = Pattern
             .compile("^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1-2][0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$");
     Matcher m = pattern.matcher(strDate);
     if (m.matches()) {
         return true;
     } else {
         return false;
     }
 }
 public static String toURLEncoded(String paramString) {
     if (paramString == null || paramString.equals("")) {
         return "";
     }
     try
     {
         String str = new String(paramString.getBytes(), "UTF-8");
         str = URLEncoder.encode(str, "UTF-8");
         return str;
     }
     catch (Exception localException)
     {
     }
     return "";
 }
 
 /**
  * 字符串转整数
  *
  * @param str
  * @param defValue
  * @return
  */
 public static int toInt(String str, int defValue) {
     try {
         return Integer.parseInt(str);
     } catch (Exception e) {
     }
     return defValue;
 }
 
  /**
  * 字符串转布尔值
  *
  * @param b
  * @return 转换异常返回 false
  */
 public static boolean toBool(String b) {
     try {
         return Boolean.parseBoolean(b);
     } catch (Exception e) {
     }
     return false;
 }
 
  /**
  * 判断是否为整数
  *
  * @param str
  *            传入的字符串
  * @return 是整数返回true,否则返回false
  */
 public static boolean isInteger(String str) {
     Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
     return pattern.matcher(str).matches();
 }

 /**
  * 判断是否为浮点数,包括double和float
  *
  * @param str
  *            传入的字符串
  * @return 是浮点数返回true,否则返回false
  */
 public static boolean isDouble(String str) {
     Pattern pattern = Pattern.compile("^[-\\+]?[.\\d]*$");
     return pattern.matcher(str).matches();
 }
 
 /**
  * 判断email格式是否正确
  *
  * @param email
  * @return
  */
 public static boolean isEmail(String email) {
     String str = "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
     Pattern p = Pattern.compile(str);
     Matcher m = p.matcher(email);
     return m.matches();
 }

 /**
  * 判断是不是合法手机号码
  */
 public static boolean isPhoneNumber(String handset) {
     try {
         if (!handset.substring(0, 1).equals("1")) {
             return false;
         }
         if (handset == null || handset.length() != 11) {
             return false;
         }
         String check = "^[0123456789]+$";
         Pattern regex = Pattern.compile(check);
         Matcher matcher = regex.matcher(handset);
         boolean isMatched = matcher.matches();
         if (isMatched) {
             return true;
         } else {
             return false;
         }
     } catch (RuntimeException e) {
         return false;
     }
 }

 /**
  * 判断输入的字符串是否为纯汉字
  *
  * @param str 传入的字符窜
  * @return 如果是纯汉字返回true, 否则返回false
  */
 public static boolean isChinese(String str) {
     Pattern pattern = Pattern.compile("[\u0391-\uFFE5]+$");
     return pattern.matcher(str).matches();
 }
 
  /**
  * 清除文本里面的HTML标签
  *
  * @param htmlStr
  * @return
  */
 public static String clearHTMLTag(String htmlStr) {
     String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; // 定义script的正则表达式
     String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; // 定义style的正则表达式
     String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式
     Log.v("htmlStr", htmlStr);
     try {
         Pattern p_script = Pattern.compile(regEx_script,
                 Pattern.CASE_INSENSITIVE);
         Matcher m_script = p_script.matcher(htmlStr);
         htmlStr = m_script.replaceAll(""); // 过滤script标签

         Pattern p_style = Pattern.compile(regEx_style,
                 Pattern.CASE_INSENSITIVE);
         Matcher m_style = p_style.matcher(htmlStr);
         htmlStr = m_style.replaceAll(""); // 过滤style标签

         Pattern p_html = Pattern.compile(regEx_html,
                 Pattern.CASE_INSENSITIVE);
         Matcher m_html = p_html.matcher(htmlStr);
         htmlStr = m_html.replaceAll(""); // 过滤html标签
     } catch (Exception e) {
         htmlStr = "clear error";

     }

     return htmlStr; // 返回文本字符串
 }
}
复制代码

ToastUtils

import android.content.Context;
import android.widget.Toast;

/**
* Created by yy
* Date:2018/1/12
* Time:10:24
*/
public class ToastUtils {

 private static Context mContext;
 private static ToastUtils mInstance;
 private Toast mToast;

 public static ToastUtils getInstance() {
     return mInstance;
 }

 public static void init(Context ctx) {
     mInstance = new ToastUtils(ctx);
 }

 private ToastUtils(Context ctx) {
     mContext = ctx;
 }

 public void showToast(String text) {
     if (mToast == null) {
         mToast = Toast.makeText(mContext, text, Toast.LENGTH_SHORT);
     } else {
         mToast.setText(text);
         mToast.setDuration(Toast.LENGTH_LONG);
     }
     mToast.show();
 }

 public void cancelToast() {
     if (mToast != null) {
         mToast.cancel();
     }
 }
复制代码

Dateutils

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

/**
 * Created by yy
 * Date:2016/5/10
 * Time:9:58
 */
public class DateUtils {
    public static SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
    public static SimpleDateFormat formatDay = new SimpleDateFormat("d", Locale.getDefault());
    public static SimpleDateFormat formatMonthDay = new SimpleDateFormat("M-d", Locale.getDefault());
    public static SimpleDateFormat formatDateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());

    /**
     * 格式化日期
     *
     * @param date
     * @return 年月日
     */
    public static String formatDate(Date date) {
        return formatDate.format(date);
    }

    /**
     * 格式化日期
     *
     * @param date
     * @return 年月日 时分秒
     */
    public static String formatDateTime(Date date) {
        return formatDateTime.format(date);
    }

    /**
     * 将时间戳解析成日期
     *
     * @param timeInMillis
     * @return 年月日
     */
    public static String parseDate(long timeInMillis) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(timeInMillis);
        Date date = calendar.getTime();
        return formatDate(date);
    }

    /**
     * 将时间戳解析成日期
     *
     * @param timeInMillis
     * @return 年月日 时分秒
     */
    public static String parseDateTime(long timeInMillis) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(timeInMillis);
        Date date = calendar.getTime();
        return formatDateTime(date);
    }

    /**
     * 解析日期
     *
     * @param date
     * @return
     */
    public static Date parseDate(String date) {
        Date mDate = null;
        try {
            mDate = formatDate.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }

        return mDate;
    }

    /**
     * 解析日期
     *
     * @param datetime
     * @return
     */
    public static Date parseDateTime(String datetime) {
        Date mDate = null;
        try {
            mDate = formatDateTime.parse(datetime);
        } catch (ParseException e) {
            e.printStackTrace();
        }

        return mDate;
    }


    /**
     * 以友好的方式显示时间
     *
     * @param sdate
     * @return
     */
    public static String friendlyTime(String sdate) {
        Date time = parseDateTime(sdate);
        if (time == null) {
            return "Unknown";
        }
        String ftime = "";
        Calendar cal = Calendar.getInstance();

        // 判断是否是同一天
        String curDate = formatDate.format(cal.getTime());
        String paramDate = formatDate.format(time);
        if (curDate.equals(paramDate)) {
            int hour = (int) ((cal.getTimeInMillis() - time.getTime()) / 3600000);
            if (hour == 0)
                ftime = Math.max(
                        (cal.getTimeInMillis() - time.getTime()) / 60000, 1)
                        + "分钟前";
            else
                ftime = hour + "小时前";
            return ftime;
        }

        long lt = time.getTime() / 86400000;
        long ct = cal.getTimeInMillis() / 86400000;
        int days = (int) (ct - lt);
        if (days == 0) {
            int hour = (int) ((cal.getTimeInMillis() - time.getTime()) / 3600000);
            if (hour == 0)
                ftime = Math.max(
                        (cal.getTimeInMillis() - time.getTime()) / 60000, 1)
                        + "分钟前";
            else
                ftime = hour + "小时前";
        } else if (days == 1) {
            ftime = "昨天";
        } else if (days == 2) {
            ftime = "前天";
        } else if (days > 2 && days <= 10) {
            ftime = days + "天前";
        } else if (days > 10) {
            ftime = formatDate.format(time);
        }
        return ftime;
    }
}
复制代码

NetworkUtil

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class NetworkUtil {
    /** 网络不可用 */
    public static final int NO_NETWORK = 0;
    /** 是wifi连接 */
    public static final int WIFI = 1;
    /** 不是wifi连接 */
    public static final int NO_WIFI = 2;

    /**
     * 获取当前网络连接类型
     * @param context
     * @return
     */
    public static int getNetWorkType(Context context) {
        if (!isNetWorkAvailable(context)) {
            return NetworkUtil.NO_NETWORK;
        }
        ConnectivityManager cm = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        // cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
        if (cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting())
            return NetworkUtil.WIFI;
        else
            return NetworkUtil.NO_WIFI;
    }

    /**
     * 判断当前网络状态是否可用
     * @param context
     * @return
     */
    public static boolean isNetWorkAvailable(Context context) {
        ConnectivityManager cm = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        if (cm == null) {
            return false;
        }
        NetworkInfo ni = cm.getActiveNetworkInfo();
        if (ni == null || !ni.isAvailable()) {
            return false;
        }
        return true;
    }

}
复制代码

Logger

package ren.solid.library.utils;

import android.support.annotation.NonNull;
import android.text.TextUtils;
import android.util.Log;


public class Logger {

    /**
     * 是否为开发者模式(开发模式打印LOG,非开发模式不打印LOG)
     */
    private static boolean mDebug = true;

    private Logger() {
    }

    /**
     * 打印info级别的log
     *
     * @param msg
     */
    public static void i(Object object, String msg) {
        String tagName = getTagName(object);
        if (mDebug) {
            Log.i(tagName, msg);
        }
    }

    @NonNull
    private static String getTagName(Object object) {
        String tagName = object.getClass().getSimpleName();
        if (TextUtils.isEmpty(tagName)) tagName = "AnonymityClass";
        return tagName;
    }

    /**
     * 打印info级别的log
     *
     * @param msg
     */
    public static void i(String msg) {
        if (mDebug) {
            Log.i("LogInfo", msg);
        }
    }

    /**
     * 打印error级别的log
     *
     * @param msg
     */
    public static void e(Object object, String msg) {
        String tagName = getTagName(object);
        if (mDebug) {
            Log.e(tagName, msg);
        }
    }

    /**
     * 打印error级别的log
     *
     * @param msg
     */
    public static void e(String msg) {
        if (mDebug) {
            Log.e("LogError", msg);
        }
    }
}
复制代码

 

public class NumberUtils {
    /**
     * 中国移动拥有号码段为:139,138,137,136,135,134,159,158,157(3G),151,150,188(3G),187(3G
     * );13个号段 中国联通拥有号码段为:130,131,132,156(3G),186(3G),185(3G);6个号段
     * 中国电信拥有号码段为:133,153,189(3G),180(3G);4个号码段
     */
    private static String mRegMobileStr = "^1(([3][456789])|([5][01789])|([8][78]))[0-9]{8}$";
    private static String mRegMobile3GStr = "^((157)|(18[78]))[0-9]{8}$";
    private static String mRegUnicomStr = "^1(([3][012])|([5][6])|([8][56]))[0-9]{8}$";
    private static String mRegUnicom3GStr = "^((156)|(18[56]))[0-9]{8}$";
    private static String mRegTelecomStr = "^1(([3][3])|([5][3])|([8][09]))[0-9]{8}$";
    private static String mRegTelocom3GStr = "^(18[09])[0-9]{8}$";
    private static String mRegPhoneString = "^(?:13\\d|15\\d)\\d{5}(\\d{3}|\\*{3})$";

    private String mobile = "";
    private int facilitatorType = 0;
    private boolean isLawful = false;
    private boolean is3G = false;

    public NumberUtils(String mobile)
    {
        this.setMobile(mobile);
    }

    public void setMobile(String mobile)
    {
        if (mobile == null)
        {
            return;
        }
        /** */
        /** 第一步判断中国移动 */
        if (mobile.matches(NumberUtils.mRegMobileStr))
        {
            this.mobile = mobile;
            this.setFacilitatorType(0);
            this.setLawful(true);
            if (mobile.matches(NumberUtils.mRegMobile3GStr))
            {
                this.setIs3G(true);
            }
        }
        /** */
        /** 第二步判断中国联通 */
        else if (mobile.matches(NumberUtils.mRegUnicomStr))
        {
            this.mobile = mobile;
            this.setFacilitatorType(1);
            this.setLawful(true);
            if (mobile.matches(NumberUtils.mRegUnicom3GStr))
            {
                this.setIs3G(true);
            }
        }
        /** */
        /** 第三步判断中国电信 */
        else if (mobile.matches(NumberUtils.mRegTelecomStr))
        {
            this.mobile = mobile;
            this.setFacilitatorType(2);
            this.setLawful(true);
            if (mobile.matches(NumberUtils.mRegTelocom3GStr))
            {
                this.setIs3G(true);
            }
        }
        /** */
        /** 第四步判断座机 */
        if (mobile.matches(NumberUtils.mRegPhoneString))
        {
            this.mobile = mobile;
            this.setFacilitatorType(0);
            this.setLawful(true);
            if (mobile.matches(NumberUtils.mRegMobile3GStr))
            {
                this.setIs3G(true);
            }
        }
    }

    public String getMobile()
    {
        return mobile;
    }

    public int getFacilitatorType()
    {
        return facilitatorType;
    }

    public boolean isLawful()
    {
        return isLawful;
    }

    public boolean isIs3G()
    {
        return is3G;
    }

    private void setFacilitatorType(int facilitatorType)
    {
        this.facilitatorType = facilitatorType;
    }

    private void setLawful(boolean isLawful)
    {
        this.isLawful = isLawful;
    }

    private void setIs3G(boolean is3G)
    {
        this.is3G = is3G;
    }
}
复制代码

SpUtils

import android.content.Context;
import android.content.SharedPreferences;

import java.util.Set;

/**
 * 通过SharedPreferences存取数据的工具类
 */
public class SpUtils {
    private static SharedPreferences sharedPreferences;
    private static String config = "XY";
    /**
     * 存储Set String数据
     */
    public static boolean putStringSet(Context context, String Key, Set<String> Value) {
        if (sharedPreferences == null) {
            sharedPreferences = context.getSharedPreferences(config, Context.MODE_PRIVATE);
        }
        return sharedPreferences.edit().putStringSet(Key, Value).commit();
    }

    /**
     * 拿取Set String数据
     */
    public static Set getStringSet(Context context, String Key, Set<String> defvalue) {
        if (sharedPreferences == null) {
            sharedPreferences = context.getSharedPreferences(config, Context.MODE_PRIVATE);
        }
        return sharedPreferences.getStringSet(Key, defvalue);
    }

    /**
     * 存储String数据
     */
    private static boolean putString(Context context, String Key, String Value) {
        if (sharedPreferences == null) {
            sharedPreferences = context.getSharedPreferences(config, Context.MODE_PRIVATE);
        }
        return sharedPreferences.edit().putString(Key, Value).commit();
    }

    /**
     * 拿取String数据
     */
    private static String getString(Context context, String Key, String defvalue) {
        if (sharedPreferences == null) {
            sharedPreferences = context.getSharedPreferences(config, Context.MODE_PRIVATE);
        }
        return sharedPreferences.getString(Key, defvalue);
    }

    // 保存boolean值
    private static boolean putBoolean(Context context, String key, boolean value) {
        if (sharedPreferences == null) {
            sharedPreferences = context.getSharedPreferences(config, Context.MODE_PRIVATE);
        }
        return sharedPreferences.edit().putBoolean(key, value).commit();
    }

    // 取boolean值
    private static boolean getBoolean(Context context, String key,
                                      boolean defValue) {
        if (sharedPreferences == null) {
            sharedPreferences = context.getSharedPreferences(config, Context.MODE_PRIVATE);
        }
        return sharedPreferences.getBoolean(key, defValue);
    }

    // 保存int值
    private static boolean putInt(Context context, String key, int value) {
        if (sharedPreferences == null) {
            sharedPreferences = context.getSharedPreferences(config, Context.MODE_PRIVATE);
        }
        return sharedPreferences.edit().putInt(key, value).commit();
    }

    // 取int值
    private static int getInt(Context context, String key, int defValue) {
        if (sharedPreferences == null) {
            sharedPreferences = context.getSharedPreferences(config, Context.MODE_PRIVATE);
        }
        return sharedPreferences.getInt(key, defValue);
    }

    /**
     * 设置是否第一次打开应用
     * @return sp是否存储成功
     */
    public static boolean setFirstOpen(Context context) {
        return putBoolean(context, "FirstOpen", true);
    }

    /**
     * 判断是否第一次打开应用
     * @return 是否是第一次打开 true:是 false:否
     */
    public static boolean getFirstOpen(Context context) {
        return getBoolean(context, "FirstOpen", false);
    }
}
复制代码

ViewUtils

 /**
     * 获取屏幕的宽度
     *
     * @param context context
     * @return
     */
    public static int getScreenWidth(Context context) {
        DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
        return displayMetrics.widthPixels;
    }

    /**
     * 获取屏幕的高度
     *
     * @param context context
     * @return
     */
    public static int getScreenHeight(Context context) {
        DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
        return displayMetrics.heightPixels;
    }

    //转换dp为px
    public static int dp2px(Context context, int dip) {
        float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dip * scale + 0.5f * (dip >= 0 ? 1 : -1));
    }

    //转换px为dp
    public static int px2dp(Context context, int px) {
        float scale = context.getResources().getDisplayMetrics().density;
        return (int) (px / scale + 0.5f * (px >= 0 ? 1 : -1));
    }

    //转换sp为px
    public static int sp2px(Context context, float spValue) {
        float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
        return (int) (spValue * fontScale + 0.5f);
    }

    //转换px为sp
    public static int px2sp(Context context, float pxValue) {
        float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
        return (int) (pxValue / fontScale + 0.5f);
    }
}

猜你喜欢

转载自blog.csdn.net/liyongzhi1992/article/details/81170834