您的位置:首页 > 移动开发 > Android开发

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

2014-09-29 16:55 501 查看
先保存下载,以备之需。

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

FileCache:

[java] view
plaincopyprint?

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(网络类):

[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;

}

}

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

[java] view
plaincopyprint?

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:

[java] view
plaincopyprint?

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 工具类