开源项目(妹纸&gank.io)学习

本文详细介绍了开源项目中如何利用Gson处理Date对象序列化问题,以及实现复制链接到Android设备剪切板的功能,并在特定生命周期方法中执行此操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近接触到了一个开源项目
开源项目妹纸

项目结构

这里写图片描述

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之前执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值