博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 金融项目整理
阅读量:7026 次
发布时间:2019-06-28

本文共 4871 字,大约阅读时间需要 16 分钟。

  本来是安安心心周末休假的时间,却被强征来加班。魔都今天雾霾严重,窗外都看不到360无死角都能看到的东方明珠。吃完午饭后睡一觉起来,觉得该给自己做点事情了。那就把项目里面的一些可圈可点的技术都罗列出来,顺便温习一下当初做的时候踩到的一些坑。

好了吐槽完毕,接下来就是代码和技术点了。

① 输入框里面限制输入的仅为数字以及限制仅只可以输入一位小数的数字。

import android.text.Editable;import android.text.TextWatcher;import android.widget.EditText;/** * 输入框监听器 * @version $Id: TextWatcherUtil.java, v 1.0.0 2015-09-24 上午11:42:23  Exp $ */public class TextWacherUtil {public static void setPoint(final EditText editText) {        editText.addTextChangedListener(new TextWatcher() {            @Override            public void onTextChanged(CharSequence s, int start, int before,                    int count) {                if (s.toString().contains(".")) {                    if (s.length() - 1 - s.toString().indexOf(".") > 1) {                        s = s.toString().subSequence(0, s.toString().indexOf(".")-1);//如果想要变成小数点后面两位就把这个1变成2                        editText.setText(s);                        editText.setSelection(s.length());                    }                }                if (s.toString().trim().substring(0).equals(".")) {                    s = "0" + s;                    editText.setText(s);                    editText.setSelection(1);                }          if (s.toString().startsWith("0")                        && s.toString().trim().length() > 1) {                    if (!s.toString().substring(1, 2).equals(".")) {                        editText.setText(s.subSequence(0, 1));                        editText.setSelection(1);                        return;                    }                }            }            @Override            public void beforeTextChanged(CharSequence s, int start, int count,                    int after) {            }            @Override            public void afterTextChanged(Editable s) {
} }); }}

我把这个抽出来做了一个方法,在使用的时候只要这么用就好了。

mResidenceTime = (EditText)findViewById(R.id.et_loan_apply_residence_time);TextWacherUtil.setPoint(mResidenceTime); //此外在布局文件里面加上这两个类型限制 android:digits="1234567890."  android:hint="@string/please"  android:inputType="number"

② 在一个activity里面用到了好多个控件,在填完上面所有的东东后提交表单,提示你前面还有一项没有填,那么还是要自己像上面滑去找到那个控件么?不!我们有定位控件的位置,并吧自动跳转到该控件的位置。并把焦点控制在该控件上

// 定位控件    private void scrollTo(View v) {        int[] viewPostion = { 0, 0 };        v.getLocationInWindow(viewPostion);        mScrollView.smoothScrollBy(viewPostion[0], viewPostion[1] - 300);    }

使用方法:

scrollTo(【控件名】);【控件名】.requestFocus();

③ 对象排序:在项目中具体用到的是在下载图像后将图像按照上传的顺序进行排序显示

/**     * 对象排序     */    @SuppressWarnings("unchecked")    public List
sortListStudent(List list) { Collections.sort(list, new Comparator
() { /* * int compare(Student o1, Student o2) 返回一个基本类型的整型, 返回负数表示:o1 小于o2, * 返回0 表示:o1和o2相等, 返回正数表示:o1大于o2。 */ public int compare(ArchUri o1, ArchUri o2) { // 按照类型进行升序排列 if (Integer.parseInt(o1.getType()) > Integer.parseInt(o2 .getType())) { return 1; } if (Integer.parseInt(o1.getType()) == Integer.parseInt(o2 .getType())) { if (o1.getSeq() > o2.getSeq()) { return 1; } return -1; } return -1; } }); return list; }

④ 短信验证倒计时

class TimeCount extends CountDownTimer {        public TimeCount(long millisInFuture, long countDownInterval) {            super(millisInFuture, countDownInterval);        }        @Override        public void onTick(long millisUntilFinished) {            btnUserInfor.setClickable(false);            btnUserInfor.setText(millisUntilFinished / 1000 + "秒后重新发送");        }        // 倒计时结束后触发        @Override        public void onFinish() {            btnUserInfor.setText("获取验证码");            btnUserInfor.setClickable(true);        }

使用方法:

TimeCount time = new TimeCount(60000, 1000);// 开始计时time.start();

⑤ 生成二维码

import com.google.zxing.WriterException;import android.graphics.Bitmap;/** * 二维码生成类 * @version $Id: QRGen.java, v 1.0.0 2015年7月31日 下午3:10:45 Exp $ */public class QRGen {    //链接地址    public static String Uri;     //二维码图片    public static Bitmap qrCodeBitmap;    //根据字符串生成二维码图片并显示在界面上,第二个参数为图片的大小    public static Bitmap creatQRGen(String str, int l){        QRGen.Uri = str;        if(!Uri.equals("")){            try {            qrCodeBitmap = EncodingHandler.createQRCode(Uri, l);            } catch (WriterException e) {                e.printStackTrace();            }            return qrCodeBitmap;        }else {            return null;        }    }}

使用方法:

【控件名】.setImageBitmap(QRGen.creatQRGen(mQGenUrl, 320));//320是二维码显示大小。

这只是一些用到的小方法,当然,项目里面还有其他的许多大块的功能,还是值得学习和分享的,后续会陆续发出来。今天就写这么多了。

转载于:https://www.cnblogs.com/BobAdmin/p/4983927.html

你可能感兴趣的文章
RDA PQ工具使用 (Adi Analysis)
查看>>
原生的社交分享
查看>>
[leetcode]Valid Sudoku
查看>>
静态成员和实例成员
查看>>
IIS的负载均衡的解决方案
查看>>
有效加快Windows 7运行速度
查看>>
磁盘清理无法删除DUMP文件手工删
查看>>
Java线程:创建与启动
查看>>
学习笔记TF060:图像语音结合,看图说话
查看>>
嘻哈说:设计模式之工厂方法模式
查看>>
工程实践:给函数取一个"好"的名字
查看>>
说说如何使用 vue-router 插件
查看>>
Java Bean + 注册验证
查看>>
通过mysql 插入一句话***
查看>>
邮件服务器
查看>>
Java FAQ(2)
查看>>
JavaScript常用事件总结
查看>>
关于加密的一些笔记
查看>>
Oracle 数据库查看client的用户登录信息包括ip
查看>>
Alipay 开源 SofaRPC
查看>>