本人所做的android个人所得税计算器程序。

先贴效果图:

1.layout布局主要使用TableLayout,代码如下

2.java实现,计算个税的方法很多,网上都有介绍,目前是按照9级税率的算法实现的,代码如下:

/** * 个人所得税计算器 * @author ameyume * */ public class PersonalTax extends Activity { private static final String LOG_TAG = "PersonalTax"; private TextView tvYanglaoNum, tvYiliaoNum, tvShiyeNum, tvZhufangNum; private EditText etShuiqianNum, etShuihouNum, etGeshui; private EditText etYanglao, etYiliao, etShiye, etZhufang; private EditText etShebaoBase, etYiliaoBase, etZhufangBase, etQizhengdianBase; private Button btnJisuan; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // setTitle("个税通——个人所得税计算器"); // 社保与住房公积金缴费金额 tvYanglaoNum = (TextView)findViewById(R.id.tvYanglaoNum); tvYiliaoNum = (TextView)findViewById(R.id.tvYiliaoNum); tvShiyeNum = (TextView)findViewById(R.id.tvShiyeNum); tvZhufangNum = (TextView)findViewById(R.id.tvZhufangNum); // 税前税后以及个人所得税金额 etShuiqianNum = (EditText)findViewById(R.id.etShuiqianNum); etShuiqianNum.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable arg0) { // TODO Auto-generated method stub // 把输入内容同步显示在社保基数,医疗基数,住房公积金基数中 etShebaoBase.setText(etShuiqianNum.getText()); etYiliaoBase.setText(etShuiqianNum.getText()); etZhufangBase.setText(etShuiqianNum.getText()); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } }); etShuihouNum = (EditText)findViewById(R.id.etShuihouNum); etGeshui = (EditText)findViewById(R.id.etGeshui); // 社保与住房公积金缴费比例 etYanglao = (EditText)findViewById(R.id.etYanglao); etYiliao = (EditText)findViewById(R.id.etYiliao); etShiye = (EditText)findViewById(R.id.etShiye); etZhufang = (EditText)findViewById(R.id.etZhufang); // 社保与住房公积金缴费基数 etShebaoBase = (EditText)findViewById(R.id.etShebaoBase); etYiliaoBase = (EditText)findViewById(R.id.etYiliaoBase); etZhufangBase = (EditText)findViewById(R.id.etZhufangBase); etQizhengdianBase = (EditText)findViewById(R.id.etQizhengdianBase); // 计算 btnJisuan = (Button)findViewById(R.id.btnJisuan); btnJisuan.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // 计算个税 String strShuiqian = etShuiqianNum.getText().toString(); if (strShuiqian.length() <= 0) { Toast.makeText(getApplicationContext(), "请输入税前收入!", Toast.LENGTH_SHORT).show(); etShuiqianNum.requestFocus(); return; } String strYanglao = etYanglao.getText().toString(); if (strYanglao.length() <= 0) { Toast.makeText(getApplicationContext(), "请输入养老缴费比例!", Toast.LENGTH_SHORT).show(); etYanglao.requestFocus(); return; } String strYiliao = etYiliao.getText().toString(); if (strYiliao.length() <= 0) { Toast.makeText(getApplicationContext(), "请输入医疗缴费比例!", Toast.LENGTH_SHORT).show(); etYiliao.requestFocus(); return; } String strShiye = etShiye.getText().toString().trim(); if (strShiye.length() <= 0) { Toast.makeText(getApplicationContext(), "请输入失业缴费比例!", Toast.LENGTH_SHORT).show(); etShiye.requestFocus(); return; } String strZhufang = etZhufang.getText().toString(); if (strZhufang.length() <= 0) { Toast.makeText(getApplicationContext(), "请输入住房公积金缴费比例!", Toast.LENGTH_SHORT).show(); etZhufang.requestFocus(); return; } String strShebaoBase = etShebaoBase.getText().toString(); if (strShebaoBase.length() <= 0) { Toast.makeText(getApplicationContext(), "请输入社保缴费基数!", Toast.LENGTH_SHORT).show(); etShebaoBase.requestFocus(); return; } String strYiliaoBase = etYiliaoBase.getText().toString(); if (strYiliaoBase.length() <= 0) { Toast.makeText(getApplicationContext(), "请输入医疗缴费基数!", Toast.LENGTH_SHORT).show(); etYiliaoBase.requestFocus(); return; } String strZhufangBase = etZhufangBase.getText().toString(); if (strZhufangBase.length() <= 0) { Toast.makeText(getApplicationContext(), "请输入住房公积金缴费基数!", Toast.LENGTH_SHORT).show(); etZhufangBase.requestFocus(); return; } String strQizhengdianBase = etQizhengdianBase.getText().toString(); if (strQizhengdianBase.length() <= 0) { Toast.makeText(getApplicationContext(), "请输入个人所得税起征点!", Toast.LENGTH_SHORT).show(); etQizhengdianBase.requestFocus(); return; } try{ float shuiqianNum = Float.parseFloat(strShuiqian); float yanglaoNum = Float.parseFloat(strYanglao); float yiliaoNum = Float.parseFloat(strYiliao); float shiyeNum = Float.parseFloat(strShiye); float zhufangNum = Float.parseFloat(strZhufang); float shebaoBase = Float.parseFloat(strShebaoBase); float yiliaoBase = Float.parseFloat(strYiliaoBase); float zhufangBase = Float.parseFloat(strZhufangBase); float qizhengdianBase = Float.parseFloat(strQizhengdianBase); // 养老缴纳金额 float yanglao = shebaoBase * yanglaoNum * 0.01f; tvYanglaoNum.setText(String.valueOf(yanglao)); // 医疗缴纳金额 float yiliao = yiliaoBase * yiliaoNum * 0.01f + 3; tvYiliaoNum.setText(String.valueOf(yiliao)); // 失业缴纳金额 float shiye = shebaoBase * shiyeNum * 0.01f; tvShiyeNum.setText(String.valueOf(shiye)); // 住房公积金缴纳金额 float zhufang = zhufangBase * zhufangNum * 0.01f; tvZhufangNum.setText(String.valueOf(zhufang)); // 计算个税 float shuihou = shuiqianNum - yanglao - yiliao - shiye - zhufang; float geshui = 0f; if (shuihou > qizhengdianBase) { // 需要交税 float jiaoshuiBase = shuihou - qizhengdianBase; if (jiaoshuiBase <= 500) { geshui = jiaoshuiBase * 0.05f; } else if (jiaoshuiBase > 500 && jiaoshuiBase <= 2000) { geshui = jiaoshuiBase * 0.1f - 25; } else if (jiaoshuiBase > 2000 && jiaoshuiBase <= 5000) { geshui = jiaoshuiBase * 0.15f - 125; } else if (jiaoshuiBase > 5000 && jiaoshuiBase <= 20000) { geshui = jiaoshuiBase * 0.2f - 375; } else if (jiaoshuiBase > 20000 && jiaoshuiBase <= 40000) { geshui = jiaoshuiBase * 0.25f - 1375; } else if (jiaoshuiBase > 40000 && jiaoshuiBase <= 60000) { geshui = jiaoshuiBase * 0.3f - 3375; } else if (jiaoshuiBase > 60000 && jiaoshuiBase <= 80000) { geshui = jiaoshuiBase * 0.35f - 6375; } else if (jiaoshuiBase > 80000 && jiaoshuiBase <= 100000) { geshui = jiaoshuiBase * 0.4f - 10375; } else if (jiaoshuiBase > 100000) { geshui = jiaoshuiBase * 0.45f - 15375; } } shuihou -= geshui; if (shuihou < 0f) { Toast.makeText(getApplicationContext(), "税后收入为负数,请检查输入是否正确!", Toast.LENGTH_SHORT).show(); etShuihouNum.setTextColor(Color.RED); } else { etShuihouNum.setTextColor(Color.BLUE); } etShuihouNum.setText(String.valueOf(shuihou)); etGeshui.setText(String.valueOf(geshui)); } catch(Exception e) { e.printStackTrace(); Log.e(LOG_TAG, "parseFloat ERROR!!!"); } } }); } }

Android实现税博客,Android个人所得税计算器相关推荐

  1. JS获取整个HTML网页代码 - Android 集美软件园 - 博客频道 - CSDN.NET

    JS获取整个HTML网页代码 - Android 集美软件园 - 博客频道 - CSDN.NET JS获取整个HTML网页代码 分类: Android提高 2012-01-12 23:27 1974人 ...

  2. Android 学习论坛博客及网站推荐 1

    Android 学习论坛博客及网站推荐 一.博客推荐 1)http://blog.csdn.net/android_tutor (Android开发入门基础,高级进阶) 2)http://blog.c ...

  3. android博客排行榜,新浪博文排行_新浪博客 新浪博客Android客户端

    新浪博客 新浪博客Android客户端 JPG,330x294,231KB,281_250 醉 是春花烂漫时 JPG,480x800,191KB,250_417 新浪博客 JPG,472x216,23 ...

  4. 发现一个学习Android的好博客

    http://blog.csdn.net/jdsjlzx?viewmode=contents   一叶飘舟大神的博客,记录了好多东西 http://blog.csdn.net/yanzhenjie10 ...

  5. Android开发者网站博客导航

    Android开发者网站博客导航 常用网站 大厂博客 大牛博客 CSDN博客 公众号 社区论坛 GitHub 求职招聘 面试指南 在线学习 应用商店 常用工具 常用网站 Google Develope ...

  6. android 国内大牛博客,总结分享几十位Android大牛的博客地址

    原标题:总结分享几十位Android大牛的博客地址 牛顿的成功是站在巨人的肩膀上.所以今天我在职业问答社交网站zai30总结了文章:总结分享几十位Android大牛的博客地址.希望大家能够从这些大牛身 ...

  7. Android 大牛开发者博客列表

    国外Android开发者 Avatar Github Blog Description Google Android https://github.com/google http://android- ...

  8. android实现博客app,如何从零实现一个你的个人博客Android App?

    By Long Luo 一.Overview 最近实现了我的第一个个人博客阅读App,但是目前存在很多很多Bugo(╯□╰)o >_ 可以通过这个App来实现RSS订阅功能,第一时间阅读我的个人 ...

  9. 转载CSDN博文精选:Android系列开发博客资源汇总

    CSDN博客本期热文推荐,为您介绍有关Android应用开发的10个博客,分享他们的日积月累的宝贵经验,希望这些文章对Android开发者们能有所启发和帮助. [1] 张国威:Android从入门到提 ...

  10. Android 学习论坛博客及网站推荐

    一.博客推荐 1)http://blog.csdn.net/android_tutor (Android开发入门基础,高级进阶) 2)http://blog.csdn.net/hellogv (入门与 ...

最新文章

  1. COLING 2018 ⽤对抗增强的端到端模型⽣成合理且多样的故事结尾
  2. 从零开始学电脑办公_从零开始学办公软件之办公软件介绍
  3. JVM系列之:对象的锁状态和同步
  4. lombok_Lombok–您绝对应该尝试一下
  5. hibernate 调试_Hibernate调试–查找查询的来源
  6. TCP/UDP相关知识
  7. P1010 幂次方 P1022 计算器的改良
  8. 卸载 Visual Studio 2005
  9. AndroidStudio_下载和安装---Android原生开发工作笔记67
  10. matlab复杂网络仿真,matlab在复杂网络上的应用
  11. _2020年10个最好的Linux发行版本
  12. 玩转vim之vim插件Ctags
  13. 12.MongoDB之固定集合(Capped Collections)
  14. 【课堂教学/课堂复习/课堂竞赛手段探析】给广大教师推荐一个期末课堂复习的最好办法
  15. 2019最新机构Web前端培训全套项目实战(完整)
  16. yuv420p 详解_YUV格式介绍
  17. 基于matlab的平面切割、旋转曲面等动图制作
  18. vmware磁盘已成功扩展,从操作系统内部对磁盘进行重新分区
  19. HBuilder页面不小心删除了或者改掉了
  20. 【ASP.NET】家乡网站设计作业「历史」「人文」「自然」「美食」「高中」

热门文章

  1. Devc++- 源文件未编译”
  2. 测试使用bytes.buffer()的单线程与多线程的写效率
  3. 北航超算运行matlab,超50万亿次!北航学子又破世界纪录,他们获得全球总决赛一等奖!...
  4. 对大众点评网会员制的一点分析
  5. 科技护肤品,买还是不买
  6. IDEA导入已有Maven项目
  7. php版本高无法删除栏目,phpcms不能删除栏目怎么办
  8. android 7 sl4a,SL4A 伴随Android7 浴火重生
  9. 博主自传——蒟蒻的OI之路
  10. 加强自定义菜单 即更换浏览器默认右击菜单栏