Android Studio开发实战:从零基础到App上线(第2版)
上QQ阅读APP看书,第一时间看更新

3.6 实战项目:房贷计算器

如今楼市可真是疯狂,房价蹭蹭蹭的坐火箭飞上天,说到买房,自然少不了房贷,根据不同的贷款方式与还款方式,计算出来的月供数额各不相同。如果手机上有个房贷计算器,那可真是帮了不少人的大忙,它绝对是个方便又实用的App。那么就让我们编写一个简易的房贷计算器出来,瞅瞅这货好不好使。

图3-26 房贷计算器的效果图

3.6.1 设计思路

虽说现在才是第三章,不过本书迄今为止介绍的App开发知识,足够写个房贷计算器App了,譬如图3-26所示的计算器界面,基本将房贷的各项计算要素囊括在内,可谓八九不离十。

根据图3-26的计算器界面,结合房贷的一些规律常识,很容易找到该计算器用到了本章的好几个控件,具体罗列如下:

  • 文本编辑框EditText:像购房总价、贷款总额这些金额数值,需要用户手工输入。
  • 单选按钮RadioButton:等额本息与等额本金是贷款的两种还款方式,用户只能选择其中一种还款方式。
  • 复选框CheckBox:商业贷款和公积金贷款,既可选择其中一种,也可两者结合起来做组合贷款。
  • 下拉框Spinner:贷款年限、基准利率这些有固定的几个数值,用户需在下拉列表中选择其中一个。
  • 相对布局RelativeLayout:位于同一行的几个控件,宽度不固定又想填满整行的话,使用相对布局是最佳选择。

其余还包括上一章介绍的文本视图TextView、按钮Button、线性布局LinearLayout、滚动视图ScrollView,几乎涵盖了这两章各小节的代表性控件,很适合实战演练。

3.6.2 小知识:文本工具TextUtils

虽然Java的String类型已经自带了很多字符串方法,能够满足大多数场合的字符串加工要求,然而总有个别情况,String类型处理起来不够干脆利索。比如判断一个字符串对象str是否非空,按照传统的Java编码,校验字符串非空的代码逻辑如下所示:

由上述的条件判断语句可知,检查字符串是否非空的时候,Java首先判断该串是否为空指针,然后判断该串的长度是否为0。这样校验固然没错,但非空判断是很常见的操作,要是开发者给每个字符串都写上两遍判断,算起来工作量就不小了。因此Android专门提供了文本工具类TextUtils,用于简化字符串的一些常用操作,就刚才的字符串非空判断而言,利用TextUtils则只需调用一个isEmpty方法便成:

除了isEmpty方法,TextUtils另有其他几个好用的字符串方法,一并说明如下:

  • isEmpty:判断字符串是否为空值。
  • getTrimmedLength:获取字符串去除头尾空格之后的长度。
  • isDigitsOnly:判断字符串是否全部由数字组成。
  • ellipsize:如果字符串超长,则返回按规则截断并添加省略号的字串。

以下代码演示了如何正确调用TextUtils的字符串方法:

接下来通过测试页面观察这几个方法是否符合预期,isEmpty方法的运行结果如图3-27和图3-28所示,其中图3-27为编辑框没有字符输入的情况,此时isEmpty的判断是“空”;图3-28为编辑框有输入字符的情况,此时isEmpty的判断是“非空”。

图3-27 编辑框没输入文本

图3-28 编辑框有输入文本

3.6.3 代码示例

房贷计算器的编码过程分为三个步骤:

步骤01 先想好代码文件与布局文件的名称,比如计算器页面的代码文件取名MortgageActivity.java,布局文件取名activity_mortgage.xml。记得在AndroidManifest.xml中注册该页面的acitivity节点,注册代码如下所示:

          <activity android:name=".MortgageActivity" />

步骤01 在res/layout目录下创建布局文件activity_mortgage.xml,根据页面效果图编写计算器页面的布局定义文件。

步骤01 在项目的包名目录下创建类MortgageActivity,填入具体的控件操作与业务逻辑代码。

房贷计算器用到的所有控件均在本章和上一章做了详细介绍,主要难点反而是房贷月供的计算逻辑,这部分的算法代码参见本书附带源码middle模块的MortgageActivity.java。下面依次过一下房贷计算功能的完整流程。

打开房贷计算器的界面,首先输入购房总价350万、按揭比例70%,点击“计算贷款总额”按钮,则按钮下方立刻显示贷款总额为245万,如图3-29所示。

图3-29 计算贷款总额的界面

接着勾选“商业贷款”复选框,输入商业贷款的金额245万;点击贷款年限的下拉框,在下拉列表中选择“30年”,如图3-30所示;点击基准利率的下拉框,在下拉列表中选择“2015年10月24日”的基准利率,如图3-31所示。

图3-30 选择贷款年限的下拉框

图3-31 选择基准利率的下拉框

然后点击“计算还款明细”按钮,页面下方马上显示计算好的还款信息如图3-32所示,其中利息总额为223万元,每月还款超过13000元,顿时令人感觉压力山大。想起北京首套房的公积金最高额度为120万元,于是勾选“公积金贷款”复选框,输入公积金贷款的金额120万,同时把商业贷款的金额改为125万。再次点击“计算还款明细”按钮,页面下方同步显示最新的还款信息如图3-33所示,此时利息总额为181万,每月还款不到12000元,果真是一目了然、方便快捷。

图3-32 只选择商业贷款时的计算结果

图3-33 同时选择公积金贷款的计算结果