Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 最常用的快速開發工具類

Android 最常用的快速開發工具類

編輯:關於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);

		// 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 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;
		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 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();
	}

}
 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved