android一些工具巧用

作者:gzw1993
链接:http://www.zhihu.com/question/27140400/answer/91757401
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

其实在字符串处理方面, android.text.TextUtils这个类就能胜任绝任多数的工作,比如:
  • public static boolean isEmpty(@Nullable CharSequence str) 这个方法判断字符串非null且非空,在对字符串进行判断时可以不必if(str !=null && str.length() > 0)这样判断。
  • public static CharSequence concat(CharSequence... text) 字符串连接。有很多字符串,你还在用+拼接或自己new 一个StringBuffer\StringBuilder么?其实这个方法已经帮我们做好了,用StringBuilder实现,进行字符串拼接时可以考虑使用这个方法。而且支持SpannableString。
  • public static boolean isDigitsOnly(CharSequence str)
  • public static boolean equals(CharSequence a, CharSequence b) 判断两个字符串对象的内容是否相等,内部进行了非null判断
  • public static String htmlEncode(String s) 将html代码中的特殊字符进行转码处理
当判断一些常用的URI的时候,可以用 android.webkit.URLUtil这个工具类

android.text.format.DateUtils 这个类是Android提供的格式化日期的工具类。相对于我们经常使用的SimpleDateFormat类来说,DateUtils已经处理好国际化相关的问题,而且还封装了一些很简便的方法。

  • public static String formatDateTime(Context context, long millis, int flags); 这个方法可以格式化日期和时间,接收三个参数,其中第三个参数flags决定输出后的格式,如果只输出日期的话:

    DateUtils.formatDateTime(context,millis,DateUtils.FORMAT_SHOW_DATE)

如果想输出年或月等等格式的话,就在DateUtils找对应的flags就可以。但是如果想输出年、月、日、星期、日期等多重的结果的组合,可以通过|操作符来运算。


DateUtils.formatDateTime(context, millis,
        DateUtils.FORMAT_SHOW_YEAR | 
                DateUtils.FORMAT_SHOW_DATE |
                DateUtils.FORMAT_SHOW_WEEKDAY |
                DateUtils.FORMAT_SHOW_TIME);

输出的结果:2016年1月16日星期五 12:40

  • public static boolean isToday(long when) 判断日期是否是今天

  • public static CharSequence getRelativeTimeSpanString(long startTime) 返回与当前的相对时间的字符串。这样说有些抽象,比如微信的聊天列表上显示的上一条信息的时间,如果是今天就显示今天的时间,是昨天的就显示昨天,再久远一点的就显示日期(但是这个方法的最大只能精确到天,不能像微信那样显示到几秒前,几分钟前)。

  • 还有tools schemas在新建Activity时IDE都会在xml的根节点默认加上tools的命名空间。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="net.gzw1993.androidtips.DateUtilsActivity"
    tools:showIn="@layout/activity_date_utils">

    <Button
        android:id="@+id/btn_select_date"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        tools:text="点击选择日期" />
</LinearLayout>

这里介绍一种tools的简单用法。在写布局的时候经常会写一些无用的字符串用来预览布局,但是这些数据一般会在完成后删除,有时候在维护时为了方便预览再写上。这时可以使用tools的命名空间,比如tools:text="点击选择日期"tools仅仅可以预览,在运行的状态下解析布局文件时就会忽略过这条属性。这非常适合用于预览布局。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值