本来是安安心心周末休假的时间,却被强征来加班。魔都今天雾霾严重,窗外都看不到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<ArchUri> sortListStudent(List list) {
Collections.sort(list, new Comparator<ArchUri>() {
/*
* 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是二维码显示大小。

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

Android 金融项目整理的更多相关文章

  1. 【转】GitHub平台最火Android开源项目整理——2013-08-25 17

    http://game.dapps.net/news/developer/9199.html GitHub在中国的火爆程度无需多言,越来越多的开源项目迁移到GitHub平台上.更何况,基于不要重复造轮 ...

  2. 最火的Android开源项目整理

    一.代码库   1.from  代码家 整理比较好的源码连接   ******************************************************************* ...

  3. GitHub上最火的Android开源项目整理

    这篇文章介绍GitHub上另外34个非常受欢迎的Android开源项目,在这些项目中,你又在用或用过哪些呢? 41. android-swipelistview SwipeListView是一个And ...

  4. Android开源项目整理:个性化空间View篇(看遍论坛千万篇,不看此篇也枉然)

    个性化View控件虽然你在多处可以找到 但是这个整理的不可以不看欧: 主要介绍不错的个性化View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridVi ...

  5. 【Android 应用开发】GitHub 优秀的 Android 开源项目

    原文地址为http://www.trinea.cn/android/android-open-source-projects-view/,作者Trinea 主要介绍那些不错个性化的View,包括Lis ...

  6. Android 开源项目及其学习

    Android 系统研究:http://blog.csdn.net/luoshengyang/article/details/8923485 Android 腾讯技术人员博客 http://hukai ...

  7. 2015-2016最火的Android开源项目--github开源项目集锦(不看你就out了)

    标签: Android开发开源项目最火Android项目github 2015-2016最火的Android开源项目 本文整理与集结了近期github上使用最广泛最火热与最流行的开源项目,想要充电与提 ...

  8. fir.im Weekly - 1000 个 Android 开源项目集合

    冬天到了,适宜囤点代码暖暖身.本期 fir.im Weekly 收集了最近一些不错的 GitHub 源码.开发工具和技术实践教程类文章分享给大家. codeKK - 集合近 1000 Android ...

  9. 59.Android开源项目及库 (转)

    转载 : https://github.com/Tim9Liu9/TimLiu-Android?hmsr=toutiao.io&utm_medium=toutiao.io&utm_so ...

随机推荐

  1. SQL查询显示行号、随机查询、取指定行数据

    转自:walkingp 1.显示行号 如果数据没有删除的情况下主键与行号是一致的,但在删除某些数据,行号就与主键不一致了,这时需要查询行号就需要用新的方法,在SQL Server2005之前,需要使用 ...

  2. 19、XHTML

    XHTML 可扩展超文本标签语言(EXtensible HyperText Markup Language). 是一种 W3C 标准. 更严格,更纯净的HTML代码. 目标是取代HTML代码. XHT ...

  3. jdbc - Insert 'Date' value in PreparedStatement

    “preparedStatement.setDate()”方法接受的是 'java.sql.Date' 类型的参数,而我们一般格式化日期所使用的是'java.util.Date'中的'SimpleDa ...

  4. asp.net mvc4 使用java异步提交form表单时出现[object object] has no method ajaxSubmit

    最近接手了一个单子,说大不大,只是功能不少,开发过程中遇到该问题 先看脚本截图: 本以为是笔误,哪儿写错了,可是看来看去,都没发现有不合适的地方,对比过网上很多代码,都差不多,于是各种方式的,各种原因 ...

  5. cocos2d中如何使用图片纹理图集的加载来实现一个动画的功能

    cocos2d中要实现一个动画,一般采用纹理图集的方式,也就是说把几个连续动作的图片挨个显示切换这样就是动画 一: 首先先看下今天要实现的具体的目的,打飞机的时间屏幕上会有一个喷火的小飞机,飞机的尾部 ...

  6. 解决js浮点数计算bug

    1.加 function add(a, b) { var c, d, e; try { c = a.toString().split(".")[1].length; } catch ...

  7. 初试ubuntu14.4问题集锦2

    好的,我开始继续鼓捣. 想了这么长时间,我想到的是,肯定是compiz设置了unity的什么东西才导致这种问题,绝非什么显卡驱动的事情. 于是二话不说,开机登录,进入tty1,然后apt-get re ...

  8. 导入Android工程源码出现乱码问题的解决方法

    可以尝试着从以下三个方法进行调试,一般情况下会完美解决的: 1.windows->Preferences->General->Content Types->Text->J ...

  9. java编码转化方案-备用

    import java.io.UnsupportedEncodingException; /** * 转换字符串的编码 */ public class changeCharSet { /** 7位AS ...

  10. 一个小白对Arguments的理解

    1.Arguments是一个类似数组的实参队列,译为:论据,论点,姑且译作参数(实参): 2.Arguments与形参保持不同的存储空间,只有当形参被赋值之后两者才会相等 3.传说在严格模式下函数内自 ...