Android开发的工具类一
来源:互联网 发布:钩针和棒针的区别知乎 编辑:程序博客网 时间:2024/06/07 16:59
Android开发的工具类能很好的封装一些常用的操作,以后使用起来也非常方便,我把我经常使用的工具类分享给大家。
FileCache:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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(网络类):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
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高度):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
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();
}
}
0 0
- Android开发的工具类一
- android开发工具类总结(一)
- Android 开发一、项目工具类
- 菜鸟学Android(一): 开发工具的简介
- 【开发工具】一、开发者需知的10类工具
- android开发回顾(一) -- 工具篇
- Android开发工具大集合(一)
- Android 开发工具一键下载
- Android Studio开发工具学习篇章一
- Android即时通讯工具开发(一)
- Android开发中常用的工具类
- Android开发中常用的工具类
- Android开发中常用的工具类
- Android开发中常用的工具类
- Android开发中常用的工具类
- Android开发中常用的工具类
- Android开发中工具类的介绍
- Android开发常用的工具类
- 《Linux防火墙》学习摘要
- NSLocalizedString 国际化失败
- 无线充电技术介绍
- memcache 启动报错
- 笔记:浅谈java虚拟机(四)
- Android开发的工具类一
- android学习笔记一(基础部分)
- maven 和eclipse插件
- java复习第七课,控制语句
- 并查集 畅通工程
- iOS CocoaPods自动管理第三方开源库
- NOJ 1447 大作业
- Oracle Form之Trigger解读
- 如何避免在Block里用self造成循环引用