所謂的簡(jiǎn)單模擬銀行轉(zhuǎn)賬,就是在自己使用一些布局(目前有三個(gè)界面,貌似不堪,用者請(qǐng)見諒,本次只是實(shí)現(xiàn)簡(jiǎn)單模擬的銀行轉(zhuǎn)賬業(yè)務(wù)),這模擬有三個(gè)頁(yè)面,分別是:轉(zhuǎn)賬前雙方賬號(hào)相關(guān)信息輸入,確認(rèn)相關(guān)信息頁(yè)面以及提示是否轉(zhuǎn)賬成功(需判斷余額)。
個(gè)人初次看了相關(guān)的五大布局以及四大組件(Activity)、以及Intent的個(gè)人運(yùn)用、使用Handler進(jìn)行驗(yàn)證碼倒計(jì)時(shí)等,那就邊看代碼邊做一些簡(jiǎn)單的解釋。
其中布局文件xml有三個(gè):
activity_1.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:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"android:orientation="vertical"android:background="#F8F8FF"tools:context="com.csii.trans.MainActivity"><LinearLayout
android:layout_width="match_parent"android:layout_height="wrap_content"><TextView
android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="24dp"android:text="付款人信息"android:textColor="#D9D919"android:layout_weight="1"/></LinearLayout><LinearLayout
android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"android:background="#F8F8FF"android:layout_weight="4"><LinearLayout
android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_weight="1"><TextView
android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="20dp"android:text="付款人賬號(hào):"android:gravity="left"/><EditText
android:id="@+id/f_et_ac"android:layout_width="match_parent"android:layout_height="wrap_content"android:numeric="signed"/></LinearLayout><LinearLayout
android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_weight="1"><TextView
android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="20dp"android:text="賬 號(hào) 余 額:"android:gravity="left"/><TextView
android:id="@+id/f_tv_rest"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#D9D919"android:gravity="center"android:textSize="24dp"android:text="8 000 元"/></LinearLayout><LinearLayout
android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_weight="1"><TextView
android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="24dp"android:text="轉(zhuǎn)賬金額:"android:gravity="center"/><EditText
android:id="@+id/f_et_trans"android:layout_width="match_parent"android:layout_height="wrap_content"android:numeric="signed"/> />
</LinearLayout></LinearLayout><LinearLayout
android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_weight="1"><TextView
android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="24dp"android:text="收款人信息"android:gravity="center"android:textColor="#D9D919"/></LinearLayout><LinearLayout
android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"android:background="#F8F8FF"android:layout_weight="4"><LinearLayout
android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_weight="1"><TextView
android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="20dp"android:text="收款方戶名:"android:gravity="center"/><EditText
android:id="@+id/f_et_payname"android:layout_width="match_parent"android:layout_height="wrap_content"/></LinearLayout><LinearLayout
android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_weight="1"><TextView
android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="20dp"android:text="收款方賬號(hào):"android:gravity="center"/><EditText
android:id="@+id/f_et_payac"android:layout_width="match_parent"android:layout_height="wrap_content"android:numeric="signed"/> />
</LinearLayout><LinearLayout
android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_weight="1"><TextView
android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="20dp"android:text=" 收 款 行 :"android:gravity="center"/><EditText
android:id="@+id/f_et_bank"android:layout_width="match_parent"android:layout_height="wrap_content"/></LinearLayout></LinearLayout><LinearLayout
android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_weight="1"><Button
android:layout_width="match_parent"android:layout_height="wrap_content"android:text="下一步"android:id="@+id/f_btn_next"android:background="#D9D919"android:layout_weight="1"/></LinearLayout></LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"android:orientation="vertical"android:background="#F8F8FF"><LinearLayout
android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_weight="1"><TextView
android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="24dp"android:text="付款賬號(hào):"/><TextView
android:id="@+id/s_tv_ac"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="left"android:textSize="26dp"/></LinearLayout><LinearLayout
android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_weight="1"><TextView
android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="24dp"android:text=" 幣 種 :"android:gravity="center"/><TextView
android:id="@+id/s_tv_money"android:layout_width="match_parent"android:layout_height="wrap_content"android:textSize="26dp"android:text=" 人 民 幣 "android:gravity="left"/></LinearLayout><LinearLayout
android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_weight="1"><TextView
android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="24dp"android:text="轉(zhuǎn)賬金額:"android:gravity="center"/><TextView
android:id="@+id/s_tv_paymon"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="26dp"android:gravity="left"/>
</LinearLayout><LinearLayout
android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_weight="1"><TextView
android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="24dp"android:text=" 收款戶名:"/><TextView
android:id="@+id/s_tv_payname"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="left"android:textSize="24dp"/></LinearLayout><LinearLayout
android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_weight="1"><TextView
android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="24dp"android:text=" 收款賬戶:"android:gravity="center"/><TextView
android:id="@+id/s_tv_payac"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="left"android:textSize="26dp"/></LinearLayout><LinearLayout
android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_weight="1"><TextView
android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="24dp"android:text=" 收 款 行 :"/><TextView
android:id="@+id/s_tv_bank"android:layout_width="match_parent"android:layout_height="wrap_content"android:textSize="26dp"android:gravity="left"/></LinearLayout><LinearLayout
android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_weight="1"><TextView
android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="20sp"android:gravity="center"android:text="短信驗(yàn)證碼:"android:layout_weight="3"/><EditText
android:id="@+id/s_et_mess"android:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="left"android:textSize="20sp"android:maxLength="10"android:layout_weight="2"android:hint="請(qǐng)輸入驗(yàn)證碼"/><Button
android:id="@+id/s_btn_time"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="#D9D919"android:textSize="18sp"android:gravity="center_horizontal"android:layout_weight="2"android:text="60s"/></LinearLayout><LinearLayout
android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_weight="1"><Button
android:id="@+id/s_btn_confirm"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#D9D919"android:onClick="btn_resend"android:text="確認(rèn)"/></LinearLayout></LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.csii.trans.MainActivity"><TextView
android:id="@+id/t_tv_suc"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="28dp"android:textColor="#D9D919"/>
</RelativeLayout>
以上是相關(guān)的布局代碼,可以看出本人的UI不怎么好,有待提高(/汗)。
接下來(lái)是涉及到模擬銀行轉(zhuǎn)賬業(yè)務(wù)的兩個(gè)簡(jiǎn)單的對(duì)象類,User(用戶)和Pay(轉(zhuǎn)賬對(duì)象),當(dāng)然有人說(shuō)只要一個(gè)類就行,因?yàn)檫@模擬的業(yè)務(wù)太簡(jiǎn)單了,還沒(méi)使用到服務(wù)器交互數(shù)據(jù)(這個(gè)還在學(xué)),個(gè)人為了簡(jiǎn)單點(diǎn)模擬,在頁(yè)面初步設(shè)計(jì)時(shí)就決定了兩個(gè)對(duì)象的調(diào)用的屬性不同,都是為了簡(jiǎn)單模擬下相關(guān)的操作。
User.java
package com.csii.trans;
import java.io.Serializable;
/*** Created by Zeb灬D on 2016/7/16.*/
public class User implements Serializable{private String ac;
private int money;
public String
getAc() {
return ac;}
public void setAc(String ac) {
this.ac = ac;}
public int getMoney() {
return money;}
public void setMoney(
int money) {
this.money = money;}
}
Pay.java
package com.csii.trans;
import java.io.Serializable;
/*** Created by Zeb灬D on 2016/7/16.*/
public class Pay implements Serializable {private String name;
private String payac;
private String address;
public String
getName() {
return name;}
public void setName(String name) {
this.name = name;}
public String
getPayac() {
return payac;}
public void setPayac(String payac) {
this.payac = payac;}
public String
getAddress() {
return address;}
public void setAddress(String address) {
this.address = address;}
}
以上是兩個(gè)對(duì)象,都實(shí)現(xiàn)了Serializable 接口,在使用Intent時(shí)需要進(jìn)行序列化。
下面是對(duì)應(yīng)的三個(gè)activity相關(guān)操作的類,其中Comfirm類使用Handler與Thread實(shí)現(xiàn)倒計(jì)時(shí)。
MainActivity.java
package
com.csii.transimport android
.content.Intent
import android
.support.v7
.app.AppCompatActivity
import android
.os.Bundle
import android
.view.View
import android
.widget.Button
import android
.widget.EditText
import android
.widget.TextView
import android
.widget.Toastpublic class MainActivity extends AppCompatActivity {private Button f_btn_next@Overrideprotected void onCreate(Bundle savedInstanceState) {super
.onCreate(savedInstanceState)setContentView(R
.layout.activity_1)f_btn_next=(Button) findViewById(R
.id.f_btn_next)f_btn_next
.setOnClickListener(new View
.OnClickListener() {@Overridepublic void onClick(View view) {EditText f_et_ac=(EditText) findViewById(R
.id.f_et_ac)TextView f_tv_rest=(TextView) findViewById(R
.id.f_tv_rest)EditText f_et_trans=(EditText) findViewById(R
.id.f_et_trans)EditText f_et_payname=(EditText) findViewById(R
.id.f_et_payname)EditText f_et_payac=(EditText) findViewById(R
.id.f_et_payac)EditText f_et_bank=(EditText) findViewById(R
.id.f_et_bank)String ac=f_et_ac
.getText()
.toString()String trans=f_et_trans
.getText()
.toString()String name=f_et_payname
.getText()
.toString()String payac=f_et_payac
.getText()
.toString()String bank=f_et_bank
.getText()
.toString()User user=new User()Pay pay=new Pay()if(ac
.isEmpty()||trans
.isEmpty()||name
.isEmpty()||payac
.isEmpty()||bank
.isEmpty()){Toast
.makeText(MainActivity
.this,
"您還有輸入的數(shù)據(jù)", Toast
.LENGTH_SHORT)
.show()}else{user
.setMoney(
8000)user
.setAc(ac)pay
.setName(name)pay
.setPayac(payac)pay
.setAddress(bank)Intent intent = new Intent(MainActivity
.this, Comfirm
.class)intent
.putExtra(
"trans", trans)intent
.putExtra(
"user", user)intent
.putExtra(
"pay", pay)startActivity(intent)}}})}}
package com.csii.trans;
import android.content.Intent;
import android.os.Bundle;
import android.os.Message;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class Comfirm extends AppCompatActivity {private TextView s_tv_ac;
private TextView s_tv_money;
private TextView s_tv_paymon;
private TextView s_tv_payname;
private TextView s_tv_payac;
private TextView s_tv_bank;
private EditText s_et_mess;
public static int money;
private Button s_btn_time;
private Button s_btn_confirm;
private User user;
private Pay pay;
private Handler handler;
@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_2);s_tv_ac = (TextView) findViewById(R.id.s_tv_ac);s_tv_paymon = (TextView) findViewById(R.id.s_tv_paymon);s_tv_payname = (TextView) findViewById(R.id.s_tv_payname);s_tv_payac = (TextView) findViewById(R.id.s_tv_payac);s_tv_bank = (TextView) findViewById(R.id.s_tv_bank);s_btn_time=(Button)findViewById(R.id.s_btn_time);Intent intent = getIntent();User user = (User) intent.getSerializableExtra(
"user");Pay pay = (Pay) intent.getSerializableExtra(
"pay");String trans = intent.getStringExtra(
"trans");user.setMoney(user.getMoney() - Integer.parseInt(trans,
10));money = user.getMoney() - Integer.parseInt(trans,
10);user.setAc(user.getAc());s_tv_ac.setText(user.getAc());s_tv_paymon.setText(trans);s_tv_payname.setText(pay.getName());s_tv_payac.setText(pay.getPayac());s_tv_bank.setText(pay.getAddress());handler =
new Handler() {
public void handleMessage(Message msg) {s_btn_time.setText((String)msg.obj);}};
new Thread(
new Runnable(){
@Overridepublic void run() {
for (
int i=
60;i>=
0;i--){Message message=
new Message();message.obj=
new String(i+
"秒");handler.sendMessage(message);
try{Thread.sleep(
1000);}
catch (InterruptedException e){e.printStackTrace();}}}}).start();s_btn_confirm = (Button) findViewById(R.id.s_btn_confirm);s_btn_confirm.setOnClickListener(
new View.OnClickListener() {
@Overridepublic void onClick(View view) {s_et_mess=(EditText) findViewById(R.id.s_et_mess);String mess=s_et_mess.getText().toString();
if (mess.isEmpty()){Toast.makeText(Comfirm.
this,
"請(qǐng)輸入驗(yàn)證碼", Toast.LENGTH_SHORT).show();
return;}
if (money<
0){Toast.makeText(Comfirm.
this,
"您的余額不足", Toast.LENGTH_SHORT).show();}Intent intent =
new Intent(Comfirm.
this, Success.class);intent.putExtra(
"money",String.valueOf(money));intent.putExtra(
"data",
"轉(zhuǎn)賬成功");startActivity(intent);}});}}
package com.csii.trans;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Success extends AppCompatActivity {private TextView t_tv_suc;
@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_3);Intent intent=getIntent();t_tv_suc=(TextView)findViewById(R.id.t_tv_suc);
int money=Integer.parseInt(intent.getStringExtra(
"money"),
10);
if (money>=
0) t_tv_suc.setText(intent.getStringExtra(
"data"));
else t_tv_suc.setText(
"余額不足");}}
- 以上是個(gè)人的一些操作,因時(shí)間有限(貌似是三個(gè)小時(shí)做的,故簡(jiǎn)陋),其中在判斷余額的順序(先進(jìn)行相減后的結(jié)果,存入與判斷的順序),也希望能幫到你們。
May-The-Good-Luck-Be-With-You
總結(jié)
以上是生活随笔為你收集整理的Android——简单模拟银行转账的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。