1. 程式人生 > >開源專案(妹紙&gank.io)學習

開源專案(妹紙&gank.io)學習

最近接觸到了一個開源專案
開源專案妹紙

專案結構

這裡寫圖片描述

1.關於Gson

 final static Gson gson = new GsonBuilder()
            //為了避免使用Gson時遇到locale影響Date格式的問題,使用GsonBuilder來建立Gson物件,
            // 在建立過程中呼叫GsonBuilder.setDateFormat(String)指定一個固定的格式
            .setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
            .serializeNulls()
            .create();

Gson預設處理Date物件的序列化/反序列化是通過一個SimpleDateFormat物件來實現的,通過下面的程式碼去獲取例項

DateFormat.getDateTimeInstance() 

為了避免因環境不同而導致序列化結果不同,我們要手動設定格式。

serializeNulls的作用
在json資料的值為null時,可以保證輸出鍵值對形式,比如{a,null},如果不設定,則輸出{}.

2.複製連結到剪下板

public class AndroidUtils {
    //text為內容,success為複製成功的提示文字
    public static void
copyToClipBoard(Context context, String text, String success) { ClipData clipData = ClipData.newPlainText("meizhi_copy", text); ClipboardManager manager = (ClipboardManager) context.getSystemService( Context.CLIPBOARD_SERVICE); manager.setPrimaryClip(clipData); Toast.makeText(context, success, Toast.LENGTH_SHORT).show(); } }

當Activity完全執行起來,回回調onPostCreate生命週期方法

 @Override protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        new Handler().postDelayed(() -> setRequestDataRefresh(true), 358);
        loadData(true);
    }

此方法在onWindowFocusChanged之前執行。