Kotlin高仿微信-第33篇-支付-充值
Kotlin高仿微信-第33篇-支付-充值
在本篇中,我们将实现一个充值页面的功能,用户可以输入金额并选择支付方式,然后点击充值按钮,数据会被发送到Web服务器进行处理。
一、自定义数字键盘首先,我们需要创建一个自定义数字键盘的布局文件`recharge_keyboard.xml`:
```xml
android:layout_height="wrap_content" android:orientation="vertical"> android:layout_width="match_parent" android:layout_height="40dp" android:inputType="numberDecimal" android:textSize="16sp" android:hint="请输入金额" /> android:layout_height="wrap_content" android:orientation="horizontal">
```
然后,我们需要在Activity中加载这个布局文件并设置点击事件:
```javapublic class RechargeActivity extends AppCompatActivity {
private EditText etRechargeAmount;
private Button btn0, btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recharge);
etRechargeAmount = findViewById(R.id.et_recharge_amount);
btn0 = findViewById(R.id.btn_0);
btn1 = findViewById(R.id.btn_1);
btn2 = findViewById(R.id.btn_2);
btn3 = findViewById(R.id.btn_3);
btn4 = findViewById(R.id.btn_4);
btn5 = findViewById(R.id.btn_5);
btn6 = findViewById(R.id.btn_6);
btn7 = findViewById(R.id.btn_7);
btn8 = findViewById(R.id.btn_8);
btn9 = findViewById(R.id.btn_9);
btn0.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
etRechargeAmount.append("0");
}
});
btn1.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
etRechargeAmount.append("1");
}
});
btn2.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
etRechargeAmount.append("2");
}
});
btn3.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
etRechargeAmount.append("3");
}
});
btn4.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
etRechargeAmount.append("4");
}
});
btn5.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
etRechargeAmount.append("5");
}
});
btn6.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
etRechargeAmount.append("6");
}
});
btn7.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
etRechargeAmount.append("7");
}
});
btn8.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
etRechargeAmount.append("8");
}
});
btn9.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
etRechargeAmount.append("9");
}
});
}
}
```
二、充值页面现在,我们需要创建一个充值页面的布局文件`recharge_page.xml`:
```xml
android:layout_height="wrap_content" android:orientation="vertical"> android:layout_width="match_parent" android:layout_height="40dp" android:inputType="numberDecimal" android:textSize="16sp" android:hint="请输入金额" /> android:layout_width="wrap_content" android:layout_height="40dp" android:text="充值" />
```
然后,我们需要在Activity中加载这个布局文件并设置点击事件:
```javapublic class RechargePageActivity extends AppCompatActivity {
private EditText etRechargeAmount;
private Button btnRecharge;
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recharge_page);
etRechargeAmount = findViewById(R.id.et_recharge_amount);
btnRecharge = findViewById(R.id.btn_recharge);
btnRecharge.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
// 发送数据到Web服务器 String amount = etRechargeAmount.getText().toString();
sendRechargeData(amount);
}
});
}
private void sendRechargeData(String amount) {
// 使用OkHttp发送请求 OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(" .post(RequestBody.create(MediaType.get("application/json"), "{"amount":"" + amount + ""}"))
.build();
client.newCall(request).enqueue(new Callback() {
@Override public void onFailure(Call call, IOException e) {
Log.e("RechargePageActivity", "Error sending recharge data", e);
}
@Override public void onResponse(Call call, Response response) throws IOException {
Log.d("RechargePageActivity", "Recharge data sent successfully");
}
});
}
}
```
三、总结在本篇中,我们实现了一个充值页面的功能,用户可以输入金额并选择支付方式,然后点击充值按钮,数据会被发送到Web服务器进行处理。我们使用OkHttp发送请求,并且使用自定义数字键盘来输入金额。
当然,这只是一个简单的例子,如果你需要更复杂的功能,你可能需要使用其他技术,如支付宝、微信等。
希望这篇文章能够帮助你理解如何实现一个充值页面的功能。