你不知道的TextUtils用法

作者: 一只好奇的茂 | 来源:发表于2017-10-12 19:48 被阅读1432次

    以前使用TextUtils都只会用isEmpty()和equals()方法,最近接触到它的一些很好用的方法,特此记录一下:

    简单使用

            String a = "Android";
            String b = " Studio";
            String c = "012345";
            String d = " \n\t \b";
            String e = "11-233-we-7d-fv";
            String f = "<html>\n<body>\n<h1>My First Heading</h1>\n<p>My first paragraph.</p>\n</body>\n</html>";
            Log.e("tag", TextUtils.isEmpty(a) + "");// 字符串是否为null或“”
            Log.e("tag", TextUtils.isDigitsOnly(c) + "");// 字符串是否全是数字
            Log.e("tag", TextUtils.isGraphic(d) + "");// 字符串是否含有可打印的字符
    
            Log.e("tag", TextUtils.concat(a, b) + "");// 拼接多个字符串
            Log.e("tag", TextUtils.getTrimmedLength(b) + "");// 去掉字符串前后两端空格(相当于trim())之后的长度
            Log.e("tag", TextUtils.getReverse(b, 0, b.length()) + "");// 在字符串中,start和end之间字符的逆序
            List<String> list = new LinkedList<String>();
            list.add("I");
            list.add("love");
            list.add("you");
            Log.e("tag", TextUtils.join("-", list));// 在数组中每个元素之间使用“-”来连接
    
            String[] arr = TextUtils.split(e, "-");// 以"-"来分组
            for (int i = 0; i < arr.length; i++) {
                Log.e("tag", arr[i]);
            }
            Log.e("tag", TextUtils.htmlEncode(f) + "");// 使用html编码字符串
    

    TextUtils.ellipsize()获取TextView已setMaxLines后,显示出来的字内容

    adoptAnswerTv.getViewTreeObserver().addOnGlobalLayoutListener(
            new ViewTreeObserver.OnGlobalLayoutListener() {
                @Override
                public void onGlobalLayout() {
                    adoptAnswerTv.getViewTreeObserver().removeOnGlobalLayoutListener(this);
    
                    int paddingLeft = adoptAnswerTv.getPaddingLeft();
                    int paddingRight = adoptAnswerTv.getPaddingRight();
    
                    int lineWidth = adoptAnswerTv.getWidth() - paddingLeft - paddingRight;
                    CharSequence ellipsize = TextUtils.ellipsize(answerContent, adoptAnswerTv.getPaint(), lineWidth * expandMaxLines, TextUtils.TruncateAt.END);
    
                    if (TextUtils.equals(ellipsize, answerContent)) {
                        adoptAnswerPackUpTv.setVisibility(View.GONE);
                    } else {
                        adoptAnswerPackUpTv.setVisibility(View.VISIBLE);
                    }
                }
            });
    

    相关文章

      网友评论

        本文标题:你不知道的TextUtils用法

        本文链接:https://www.haomeiwen.com/subject/riboyxtx.html