日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Android實現房貸計算器功能_Android

作者:Atomic_space ? 更新時間: 2022-03-27 編程語言

本文實例為大家分享了Android實現房貸計算器的具體代碼,供大家參考,具體內容如下

package com.atomic.moretool;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MortgageCal extends AppCompatActivity {
? ? private EditText allLoan,yearInterestRate,loanYear;
? ? private Button calLoan;
? ? private ListView ShowDebx,ShowDebj;
? ? private TextView debxTotalInterest;
? ? private TextView debjTotalInterest;
? ? @Override
? ? protected void onCreate(Bundle savedInstanceState) {
? ? ? ? super.onCreate(savedInstanceState);
? ? ? ? setContentView(R.layout.activity_mortgagecal);
? ? ? ? findCompent();
? ? ? ? calLoan.setOnClickListener(new View.OnClickListener() {
? ? ? ? ? ? @Override
? ? ? ? ? ? public void onClick(View view) {
? ? ? ? ? ? ? ? showDebx();
? ? ? ? ? ? ? ? showDebj();
? ? ? ? ? ? }
? ? ? ? });
? ? }
? ? private void showDebx(){
? ? ? ? SimpleAdapter simpleAdapter=new SimpleAdapter(this,cal_debx(),R.layout.show_debx,
? ? ? ? ? ? ? ? new String[]{"debxmonth","debxmonthloan","debxmonthprincipal","debxmonthinterest"},
? ? ? ? ? ? ? ? new int[]{R.id.debx_month,R.id.listview_debx_month_loan,R.id.listview_debx_month_principal,R.id.listview_debx_month_interest});
? ? ? ? ShowDebx.setAdapter(simpleAdapter);
? ? }
? ? private void showDebj(){
? ? ? ? SimpleAdapter simpleAdapter=new SimpleAdapter(this,cal_debj(),R.layout.show_debj,
? ? ? ? ? ? ? ? new String[]{"debjmonth","debjmonthloan","debjmonthprincipal","debjmonthinterest","debjmonthdecrease"},
? ? ? ? ? ? ? ? new int[]{R.id.debj_month,R.id.listview_debj_month_loan,R.id.listview_debj_month_principal,R.id.listview_debj_month_interest,R.id.listview_debj_month_decrease});
? ? ? ? ShowDebj.setAdapter(simpleAdapter);
? ? }
? ? private void findCompent() {
? ? ? ? allLoan=findViewById(R.id.all_loan);
? ? ? ? yearInterestRate=findViewById(R.id.year_interest_rate);
? ? ? ? loanYear=findViewById(R.id.loan_year);
? ? ? ? allLoan.setSelectAllOnFocus(true);
? ? ? ? yearInterestRate.setSelectAllOnFocus(true);
? ? ? ? loanYear.setSelectAllOnFocus(true);
? ? ? ? calLoan=findViewById(R.id.cal_loan);
? ? ? ? ShowDebx=findViewById(R.id.show_debx);
? ? ? ? ShowDebj=findViewById(R.id.show_debj);
? ? ? ? debxTotalInterest=findViewById(R.id.debx_total_interest);
? ? ? ? debjTotalInterest=findViewById(R.id.debj_total_interest);
? ? }
? ? private List<Map<String,Object>> cal_debx(){
? ? ? ? /* ?<!--等額本息-->
? ? ? ? 每月還款總額=貸款本金×[月利率×(1+月利率)^還款月數]÷[(1+月利率)^還款月數-1]
? ? ? ? 每月應還本金=貸款本金×月利率×(1+月利率)^(還款月序號-1)÷〔(1+月利率)^還款月數-1〕
? ? ? ? 每月應還利息=貸款本金×月利率×〔(1+月利率)^還款月數-(1+月利率)^(還款月序號-1)〕÷〔(1+月利率)^還款月數-1〕
? ? ? ? 總利息=還款月數×每月還款總額-貸款本金
? ? ? ? ?*/

? ? ? ? String AllLoan=allLoan.getText().toString().trim();//貸款多少
? ? ? ? String YearInterestRate=yearInterestRate.getText().toString().trim();//年利率
? ? ? ? String LoanYear=loanYear.getText().toString().trim();//貸款年數
? ? ? ? if (!AllLoan.equals("") && !YearInterestRate.equals("") && !LoanYear.equals("")){
? ? ? ? ? ? double allloan=Double.parseDouble(AllLoan);//貸款多少
? ? ? ? ? ? double yearinterestrate=Double.parseDouble(YearInterestRate);//年利率
? ? ? ? ? ? double monthinterestrate=yearinterestrate/12;//月利率
? ? ? ? ? ? double loanyear=Double.parseDouble(LoanYear);//貸款年數
? ? ? ? ? ? double loanmonth=loanyear*12;//還款月數
? ? ? ? ? ? //......需要設置還款月序號
? ? ? ? ? ? //......需要已歸還本金累計額
? ? ? ? ? ? //......需要剩余本金
? ? ? ? ? ? List<Map<String,Object>> debx_list=new ArrayList<>();
? ? ? ? ? ? for (int i=1;i<=(int)loanmonth;i++){
? ? ? ? ? ? ? ? Map<String,Object> map=new HashMap<>();
? ? ? ? ? ? ? ? // <!--等額本息-->
? ? ? ? ? ? ? ? //每月還款總額=貸款本金×[月利率×(1+月利率)^還款月數]÷[(1+月利率)^還款月數-1]
? ? ? ? ? ? ? ? double DebxMonthLoan=new BigDecimal(allloan*monthinterestrate*Math.pow((1+monthinterestrate),loanmonth)/(Math.pow((1+monthinterestrate),loanmonth)-1)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
? ? ? ? ? ? ? ? //每月應還本金=貸款本金×月利率×(1+月利率)^(還款月序號-1)÷〔(1+月利率)^還款月數-1〕
? ? ? ? ? ? ? ? double DebxMonthPrincipal=new BigDecimal(allloan*monthinterestrate*Math.pow((1+monthinterestrate),(i-1))/(Math.pow((1+monthinterestrate),loanmonth)-1)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
? ? ? ? ? ? ? ? //每月應還利息=貸款本金×月利率×〔(1+月利率)^還款月數-(1+月利率)^(還款月序號-1)〕÷〔(1+月利率)^還款月數-1〕
? ? ? ? ? ? ? ? double DebxMonthInterest=new BigDecimal(allloan*monthinterestrate*((Math.pow((1+monthinterestrate),loanmonth))-Math.pow((1+monthinterestrate),(i-1)))/(Math.pow((1+monthinterestrate),loanmonth)-1)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
? ? ? ? ? ? ? ? map.put("debxmonth",String.valueOf(i)+"月");
? ? ? ? ? ? ? ? map.put("debxmonthloan",String.valueOf(DebxMonthLoan));
? ? ? ? ? ? ? ? map.put("debxmonthprincipal",String.valueOf(DebxMonthPrincipal));
? ? ? ? ? ? ? ? map.put("debxmonthinterest",String.valueOf(DebxMonthInterest));
? ? ? ? ? ? ? ? debx_list.add(map);
? ? ? ? ? ? }
? ? ? ? ? ? //每月還款總額
? ? ? ? ? ? double DebxMonthLoan=new BigDecimal(allloan*monthinterestrate*Math.pow((1+monthinterestrate),loanmonth)/(Math.pow((1+monthinterestrate),loanmonth)-1)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
? ? ? ? ? ? //總利息=還款月數×每月還款總額-貸款本金
? ? ? ? ? ? double DebxInterest=new BigDecimal(loanmonth*DebxMonthLoan-allloan).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
? ? ? ? ? ? debxTotalInterest.setText(String.valueOf(DebxInterest));
? ? ? ? ? ? return debx_list;
? ? ? ? }else{
? ? ? ? ? ? Toast.makeText(this, "先輸入與選擇內容", Toast.LENGTH_SHORT).show();
? ? ? ? }
? ? ? ? return null;
? ? }
? ? private List<Map<String,Object>> cal_debj() {
? ? ? ? /* <!--等額本金-->
? ? ? ? 每月還款總額=(貸款本金÷還款月數)+(貸款本金-已歸還本金累計額)×月利率
? ? ? ? 每月應還本金=貸款本金÷還款月數
? ? ? ? 每月應還利息=剩余本金×月利率=(貸款本金-已歸還本金累計額)×月利率。
? ? ? ? 每月月供遞減額=每月應還本金×月利率=貸款本金÷還款月數×月利率
? ? ? ? 總利息=還款月數×(總貸款額×月利率-月利率×(總貸款額÷還款月數)*(還款月數-1)÷2+總貸款額÷還款月數)
? ? ? ? */
? ? ? ? String AllLoan = allLoan.getText().toString().trim();//貸款多少
? ? ? ? String YearInterestRate = yearInterestRate.getText().toString().trim();//年利率
? ? ? ? String LoanYear = loanYear.getText().toString().trim();//貸款年數
? ? ? ? if (!AllLoan.equals("") && !YearInterestRate.equals("") && !LoanYear.equals("")) {
? ? ? ? ? ? double allloan = Double.parseDouble(AllLoan);//貸款多少
? ? ? ? ? ? double yearinterestrate = Double.parseDouble(YearInterestRate);//年利率
? ? ? ? ? ? double monthinterestrate = yearinterestrate / 12;//月利率
? ? ? ? ? ? double loanyear = Double.parseDouble(LoanYear);//貸款年數
? ? ? ? ? ? double loanmonth = loanyear * 12;//還款月數
? ? ? ? ? ? //......需要已歸還本金累計額
? ? ? ? ? ? //......需要剩余本金
? ? ? ? ? ? List<Map<String, Object>> debj_list = new ArrayList<>();
? ? ? ? ? ? for (int i = 1; i <= (int) loanmonth; i++) {
? ? ? ? ? ? ? ? Map<String, Object> map = new HashMap<>();
? ? ? ? ? ? ? ? // <!--等額本金-->
? ? ? ? ? ? ? ? //每月應還本金=貸款本金÷還款月數
? ? ? ? ? ? ? ? double DebjMonthPrincipal = new BigDecimal(allloan / loanmonth).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
? ? ? ? ? ? ? ? //每月還款總額=(貸款本金÷還款月數)+(貸款本金-累計已還款本金)×月利率
? ? ? ? ? ? ? ? double DebjMonthLoan = new BigDecimal((allloan / loanmonth) + (allloan - DebjMonthPrincipal*i) * monthinterestrate).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
? ? ? ? ? ? ? ? //每月應還利息=剩余本金×月利率=(貸款本金-累計已還款本金)×月利率。
? ? ? ? ? ? ? ? double DebjMonthInterest = new BigDecimal((allloan-DebjMonthPrincipal*i) * monthinterestrate).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
? ? ? ? ? ? ? ? //每月月供遞減額=每月應還本金×月利率=貸款本金÷還款月數×月利率
? ? ? ? ? ? ? ? double DebjMonthDecrease = new BigDecimal(DebjMonthPrincipal * monthinterestrate).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
? ? ? ? ? ? ? ? map.put("debjmonth",String.valueOf(i)+"月");
? ? ? ? ? ? ? ? map.put("debjmonthloan",String.valueOf(DebjMonthLoan));
? ? ? ? ? ? ? ? map.put("debjmonthprincipal",String.valueOf(DebjMonthPrincipal));
? ? ? ? ? ? ? ? map.put("debjmonthinterest",String.valueOf(DebjMonthInterest));
? ? ? ? ? ? ? ? map.put("debjmonthdecrease",String.valueOf(DebjMonthDecrease));
? ? ? ? ? ? ? ? debj_list.add(map);
? ? ? ? ? ? }
? ? ? ? ? ? //總利息=還款月數×(總貸款額×月利率-月利率×(總貸款額÷還款月數)*(還款月數-1)÷2+總貸款額÷還款月數)
? ? ? ? ? ? double DebjInterest = new BigDecimal(((allloan/loanmonth+allloan*monthinterestrate)+allloan/loanmonth*(1+monthinterestrate))/2*loanmonth-allloan).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
? ? ? ? ? ? debjTotalInterest.setText(String.valueOf(DebjInterest));
? ? ? ? ? ? return debj_list;
? ? ? ? } else {
? ? ? ? ? ? Toast.makeText(this, "先輸入與選擇內容", Toast.LENGTH_SHORT).show();
? ? ? ? }
? ? ? ? return null;
? ? }
}

xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
? ? xmlns:tools="http://schemas.android.com/tools"
? ? android:orientation="vertical"
? ? android:layout_margin="15sp"
? ? android:layout_width="match_parent"
? ? android:layout_height="match_parent">
? ? <LinearLayout
? ? ? ? android:layout_marginBottom="15sp"
? ? ? ? android:orientation="horizontal"
? ? ? ? android:layout_width="match_parent"
? ? ? ? android:layout_height="wrap_content">
? ? ? ? <TextView
? ? ? ? ? ? android:text="貸款年數"
? ? ? ? ? ? android:textSize="14sp"
? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? android:layout_height="wrap_content"/>
? ? ? ? <EditText
? ? ? ? ? ? android:text="20"
? ? ? ? ? ? android:inputType="number"
? ? ? ? ? ? android:layout_weight="1"
? ? ? ? ? ? android:id="@+id/loan_year"
? ? ? ? ? ? android:layout_width="match_parent"
? ? ? ? ? ? android:layout_height="wrap_content"/>

? ? ? ? <TextView
? ? ? ? ? ? android:text="年利率"
? ? ? ? ? ? android:textSize="14sp"
? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? android:layout_height="wrap_content"/>
? ? ? ? <EditText
? ? ? ? ? ? android:text="0.0635"
? ? ? ? ? ? android:inputType="number"
? ? ? ? ? ? android:layout_weight="1"
? ? ? ? ? ? android:id="@+id/year_interest_rate"
? ? ? ? ? ? android:layout_width="match_parent"
? ? ? ? ? ? android:layout_height="wrap_content"/>
? ? </LinearLayout>
? ? <LinearLayout
? ? ? ? android:gravity="center|left"
? ? ? ? android:layout_marginBottom="10sp"
? ? ? ? android:layout_width="match_parent"
? ? ? ? android:layout_height="wrap_content"
? ? ? ? tools:ignore="RtlHardcoded">
? ? ? ? <TextView
? ? ? ? ? ? android:text="貸款多少"
? ? ? ? ? ? android:textSize="14sp"
? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? android:layout_height="wrap_content"/>
? ? ? ? <EditText
? ? ? ? ? ? android:inputType="number"
? ? ? ? ? ? android:layout_marginEnd="10sp"
? ? ? ? ? ? android:text="180000"
? ? ? ? ? ? android:id="@+id/all_loan"
? ? ? ? ? ? android:layout_weight="1"
? ? ? ? ? ? android:layout_width="match_parent"
? ? ? ? ? ? android:layout_height="wrap_content"/>
? ? ? ? <Button
? ? ? ? ? ? android:background="@drawable/button_style"
? ? ? ? ? ? android:id="@+id/cal_loan"
? ? ? ? ? ? android:text="計算"
? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? android:layout_height="wrap_content"/>
? ? </LinearLayout>
? ? <LinearLayout
? ? ? ? android:layout_marginBottom="5sp"
? ? ? ? android:layout_width="match_parent"
? ? ? ? android:layout_height="wrap_content">
? ? ? ? <TextView
? ? ? ? ? ? android:layout_marginEnd="10sp"
? ? ? ? ? ? android:text="[等額本息]"
? ? ? ? ? ? android:textSize="20sp"
? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? android:layout_height="wrap_content"/>
? ? ? ? <TextView
? ? ? ? ? ? android:text="總利息: "
? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? android:layout_height="wrap_content"/>
? ? ? ? <TextView
? ? ? ? ? ? android:id="@+id/debx_total_interest"
? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? android:layout_height="wrap_content"/>
? ? </LinearLayout>

? ? <LinearLayout
? ? ? ? android:orientation="horizontal"
? ? ? ? android:layout_width="match_parent"
? ? ? ? android:layout_height="wrap_content">
? ? ? ? <TextView
? ? ? ? ? ? android:layout_weight="1"
? ? ? ? ? ? android:text="每月總還款"
? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? android:layout_height="wrap_content"/>
? ? ? ? <TextView
? ? ? ? ? ? android:layout_weight="1"
? ? ? ? ? ? android:text="每月還本金"
? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? android:layout_height="wrap_content"/>
? ? ? ? <TextView
? ? ? ? ? ? android:layout_weight="1"
? ? ? ? ? ? android:text="每月還利息"
? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? android:layout_height="wrap_content"/>
? ? </LinearLayout>
? ? <ListView
? ? ? ? android:layout_weight="1"
? ? ? ? android:id="@+id/show_debx"
? ? ? ? android:layout_width="match_parent"
? ? ? ? android:layout_height="wrap_content"/>
? ? <LinearLayout
? ? ? ? android:layout_marginTop="15sp"
? ? ? ? android:layout_marginBottom="5sp"
? ? ? ? android:layout_width="match_parent"
? ? ? ? android:layout_height="wrap_content">
? ? ? ? <TextView
? ? ? ? ? ? android:layout_marginEnd="15sp"
? ? ? ? ? ? android:text="[等額本金]"
? ? ? ? ? ? android:textSize="20sp"
? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? android:layout_height="wrap_content"/>
? ? ? ? <TextView
? ? ? ? ? ? android:text="總利息:"
? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? android:layout_height="wrap_content"/>
? ? ? ? <TextView
? ? ? ? ? ? android:id="@+id/debj_total_interest"
? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? android:layout_height="wrap_content"/>
? ? </LinearLayout>

? ? <LinearLayout
? ? ? ? android:orientation="horizontal"
? ? ? ? android:layout_width="match_parent"
? ? ? ? android:layout_height="wrap_content">
? ? ? ? <TextView
? ? ? ? ? ? android:layout_weight="1"
? ? ? ? ? ? android:text="月總還款"
? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? android:layout_height="wrap_content"/>
? ? ? ? <TextView
? ? ? ? ? ? android:layout_weight="1"
? ? ? ? ? ? android:text="月還本金"
? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? android:layout_height="wrap_content"/>
? ? ? ? <TextView
? ? ? ? ? ? android:layout_weight="1"
? ? ? ? ? ? android:text="月還利息"
? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? android:layout_height="wrap_content"/>
? ? ? ? <TextView
? ? ? ? ? ? android:layout_weight="1"
? ? ? ? ? ? android:text="月供遞減"
? ? ? ? ? ? android:layout_width="wrap_content"
? ? ? ? ? ? android:layout_height="wrap_content"/>
? ? </LinearLayout>
? ? <ListView
? ? ? ? android:layout_weight="1"
? ? ? ? android:id="@+id/show_debj"
? ? ? ? android:layout_width="match_parent"
? ? ? ? android:layout_height="wrap_content"/>
</LinearLayout>

原文鏈接:https://blog.csdn.net/qq_34526228/article/details/122430480

欄目分類
最近更新