一些簡單的方法封裝
阿新 • • 發佈:2018-11-26
對於一個多人合作的專案來講,每個人都有自己的程式碼風格,為了增加程式碼的可讀性和後期的升級。我的建議是把一些重複的程式碼封裝一下。寫上註釋,這樣,其他人也可以呼叫。廢話上說。直接程式碼。
/** * 沉浸式 * * @param activity */ public static void Immersive(Activity activity) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); } }
呼叫:
@Override protected void onCreate(Bundle savedInstanceState) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); } super.onCreate(savedInstanceState); }
/** * 判斷手機號格式 * * @param telephone * @return */ public static boolean isTrueTelePhone(String telephone) { Pattern p = Pattern.compile("^((13[0-9])|(15[0-9])|(18[0-9])|(17[0-9])|(16[0-9])|(14[0-9]))\\d{8}$"); Matcher m = p.matcher(telephone); if (m.matches()) { return true; } return false; }
/** * 座機判斷 * * @param str 傳入的字串 * @return 真假 */ public static boolean IsTelephone(String str) { String regex = "^0(10|2[0-5789]-|\\d{3})-?\\d{7,8}$"; return matches(regex, str); }
/** * @param context * @return 獲取App版本號 */ public static String getVersionName(Context context) { try { PackageManager packageManager = context.getPackageManager(); PackageInfo packageInfo = packageManager.getPackageInfo( context.getPackageName(), 0); String a = packageInfo.versionName; return a; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return "0.0"; } /** * 撥打電話 * * @param phonenumber * @param context */ public static void call(String phonenumber, Context context) { if (!phonenumber.equals("")) { Intent callPhone = new Intent(); callPhone.setAction(Intent.ACTION_DIAL); callPhone.setData(Uri.parse("tel:" + phonenumber));//電話號碼 context.startActivity(callPhone); } else { //UiUtils.showToast(context, "無法獲取電話號碼"); } } /** * 獲取字元長度 * * @param s * @return */ public static int getWordCount(String s) { int length = 0; for (int i = 0; i < s.length(); i++) { int ascii = Character.codePointAt(s, i); if (ascii >= 0 && ascii <= 255) length++; else length += 2; } return length; } /** * 開啟軟鍵盤 * * @param mEditText * @param mContext */ public static void openKeybord(final EditText mEditText, Context mContext) { mEditText.requestFocus(); InputMethodManager imm = (InputMethodManager) mContext.getSystemService(mContext.INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); } /** * 關閉軟鍵盤 * * @param mEditText * @param mContext */ public static void closeKeybord(EditText mEditText, Context mContext) { InputMethodManager imm = (InputMethodManager) mContext .getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(mEditText.getWindowToken(), 0); } public static boolean isEmpty(String value) { if (value != null && value.trim().length() != 0) { return true; } return false; }
/** * 時間戳轉化為日期字串 * * @param seconds * @return */ public static String timeStamp2Date(String seconds) { if (seconds == null || seconds.isEmpty() || seconds.equals("null")) { return ""; } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return sdf.format(new Date(Long.valueOf(seconds + "000"))); } /** * 日期格式轉化成時間戳 * * @param date_str * @return */ public static String date2TimeStamp(String date_str) { try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return String.valueOf(sdf.parse(date_str).getTime() / 1000); } catch (Exception e) { e.printStackTrace(); } return ""; } /** * 取得當前時間戳(精確到秒) * * @return */ public static String timeStamp() { long time = System.currentTimeMillis(); String t = String.valueOf(time / 1000); return t; }
/** * 設定textview部分文字的顏色 * * @param textView * @param start * @param end */ public static void setColorText(TextView textView, int start, int end, int colorid, Context context) throws RuntimeException { SpannableStringBuilder builder = new SpannableStringBuilder(textView.getText().toString()); ForegroundColorSpan color = new ForegroundColorSpan(context.getResources().getColor(colorid)); builder.setSpan(color, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); textView.setText(builder); } /** * 更改textview字型顏色 * * @param textView 需要更改的控制元件 * @param s 顏色的string值 */ public static void changecolor(TextView textView, String s) { textView.setBackgroundColor(Color.parseColor(s)); }
/** * 時分選擇 可以根據需要傳遞已經有的時間 * * @param newhour 傳遞的時間小時 * @param newmin 傳遞的時間分鐘 * @param context 上下文 * @param textView 賦值的控制元件 */ public static void choosetime(int newhour, int newmin, Context context, final TextView textView) { final String[] hour = new String[1]; final String[] min = new String[1]; new TimePickerDialog(context, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { if (hourOfDay < 10) { hour[0] = "0" + hourOfDay; } else { hour[0] = hourOfDay + ""; } if (minute < 10) { min[0] = "0" + minute; } else { min[0] = "" + minute; } // textView.setText(String.format("%d:%d", hourOfDay, minute) + ""); textView.setText(hour[0] + ":" + min[0]); } //0,0指的是時間,true表示是否為24小時,true為24小時制 }, newhour, newmin, true).show(); } /** * 回撥返回 * * @param context 上下文 * @param name 傳遞的引數 * @param status 狀態(自定義) */ public static void getback(Activity context, String name, String status) { Intent intent = new Intent(); intent.putExtra("name", name); intent.putExtra("status", status); //把兩個資料傳遞過去 context.setResult(RESULT_OK, intent); //把結果返回去 context.finish(); } /** * 擷取字串 例如:123 * * @param cstring 需要擷取的字串 123 * @param start 開始位置 1 * @param end 結束位置 3 * @return 返回新的字串 2 */ public static String InterceptString(String cstring, int start, int end) { String newstring = ""; newstring = cstring.substring(start, end); return newstring; } /** * 字串擷取 * String s = "3#13666666666/010-69854412*400-98654565"; * String s1 = s.substring(s.indexOf("/")+1,s.indexOf("*")); * 輸出 010-69854412 * * @param s 傳入的字串 * @param start 開始位置 * @param end 結束位置 * @return 把新的字串返回去 */ public static String subStrings(String s, int start, int end) { String newstring = ""; newstring = s.substring(start, end); return newstring; }