当前位置: 首页 > news >正文

Android studio模拟制作-简易的订餐交易小案例

一、最终呈现效果

订餐支付小案例效果

二、布局设计activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity" ><TextViewandroid:id="@+id/textView5"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="欢迎来到老王订餐助手"android:textSize="35sp"app:layout_constraintBottom_toTopOf="@+id/imageView6"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><ImageViewandroid:id="@+id/imageView5"android:layout_width="130dp"android:layout_height="150dp"android:layout_marginTop="148dp"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"app:srcCompat="@drawable/cx" /><ImageViewandroid:id="@+id/imageView6"android:layout_width="126dp"android:layout_height="150dp"android:layout_marginStart="12dp"android:layout_marginLeft="12dp"android:layout_marginTop="148dp"app:layout_constraintStart_toEndOf="@+id/imageView5"app:layout_constraintTop_toTopOf="parent"app:srcCompat="@drawable/hx" /><ImageViewandroid:id="@+id/imageView7"android:layout_width="130dp"android:layout_height="150dp"android:layout_marginStart="12dp"android:layout_marginLeft="12dp"android:layout_marginTop="148dp"app:layout_constraintStart_toEndOf="@+id/imageView6"app:layout_constraintTop_toTopOf="parent"app:srcCompat="@drawable/jhj" /><CheckBoxandroid:id="@+id/cb1"android:layout_width="95dp"android:layout_height="45dp"android:layout_marginStart="16dp"android:layout_marginLeft="16dp"android:layout_marginTop="28dp"android:text="川香排骨(45元)"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/imageView5" /><CheckBoxandroid:id="@+id/cb2"android:layout_width="100dp"android:layout_height="45dp"android:layout_marginStart="44dp"android:layout_marginLeft="44dp"android:layout_marginTop="28dp"android:text="海鲜美食(60元)"app:layout_constraintStart_toEndOf="@+id/cb1"app:layout_constraintTop_toBottomOf="@+id/imageView6" /><CheckBoxandroid:id="@+id/cb3"android:layout_width="96dp"android:layout_height="45dp"android:layout_marginStart="44dp"android:layout_marginLeft="44dp"android:layout_marginTop="28dp"android:text="叫花鸡(55元)"app:layout_constraintStart_toEndOf="@+id/cb2"app:layout_constraintTop_toBottomOf="@+id/imageView7" /><Buttonandroid:id="@+id/pay"android:layout_width="143dp"android:layout_height="51dp"android:layout_marginTop="68dp"android:text="付款"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.518"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/cb2" /></androidx.constraintlayout.widget.ConstraintLayout>

三、layout目录中创建qian.xml布局文件(用于自定义弹框)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><ImageViewandroid:id="@+id/imageView"android:layout_width="match_parent"android:layout_height="45dp"app:srcCompat="@drawable/q" /><TextViewandroid:id="@+id/tv"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center_horizontal"android:text="TextView"android:textSize="24sp" />
</LinearLayout>

四、功能实现MainActivity.java

package com.itlaowang.myapptest;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity extends AppCompatActivity implements View.OnClickListener{CheckBox cb1,cb2,cb3;//声明复选按钮1/2/3变量分别为cb1/cb2/cb3Button pay;//声明付款按钮控件变量为 payprivate int count=0;//用于结算总付价格@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);cb1=findViewById(R.id.cb1);//寻找复选按钮1的IDcb2=findViewById(R.id.cb2);//寻找复选按钮2的IDcb3=findViewById(R.id.cb3);//寻找复选按钮3的IDpay=findViewById(R.id.pay);//寻找付款按钮的ID//        cb1.setOnCheckedChangeListener(this);//给复选按钮1安装监听器(OnCheckedChangeListener)
//        cb2.setOnCheckedChangeListener(this);//给复选按钮2安装监听器(OnCheckedChangeListener)
//        cb3.setOnCheckedChangeListener(this);//给复选按钮3安装监听器(OnCheckedChangeListener)pay.setOnClickListener(this);//给付款按钮安装监听器(OnClickListener)}//实现按钮支付功能@Overridepublic void onClick(View v) {if (cb1.isChecked()) {  //如果选中复选按钮1 商品(川香排骨)需要支付45元count += 45;}if (cb2.isChecked()) {  //如果选中复选按钮2 商品(海鲜美食)需要支付60元count += 60;}if (cb3.isChecked()) {  //如果选中复选按钮3 商品(叫花鸡)需要支付55元count += 55;}// 普通Toast弹出框方法(默认显示在当前Activity最下面)
//         Toast.makeText(this, "您支付了"+count+"元", Toast.LENGTH_SHORT).show();//弹框输出:您支付了XXX元(弹框默认在最小角出现,出现时间较短,会自动消失)//自定义弹框方法LayoutInflater inflater=getLayoutInflater();// 创建LayoutInflater(布局加载器)将布局文件孵化为View对象View layout=inflater.inflate(R.layout.qian,null);//孵化方法为inflate(作用:指定将孵化的View布局视图存放在什么容器,一般使用null)TextView tv=layout.findViewById(R.id.tv);//寻找布局内中的文本标签控件(id为tv)的idtv.setText("您支付了"+count+"元");//文本标签控件输出内容Toast toast=new Toast(MainActivity.this);//创建一个Toast对象需要一个上下文参数(参数设置当前的本地类MainActivity)toast.setView(layout);//设置toast弹出框输出布局视图文件中的内容toast.setDuration(Toast.LENGTH_SHORT);//设置toast弹出框设置显示内容持续时间(设置为Toast.LENGTH_SHORT短时间)toast.show();//设置toast弹出框显示count=0;//付款总额清零}}

五、总结

本次练习新增知识点,主要

①掌握Toast用法实现弹框,实现支付交易成功。

②自定义弹框实现支付交易(提升用户体验感)其中提到了孵化方法inflate,本次新增的知识点并不多,更多的对旧的知识点加以巩固。

http://www.lryc.cn/news/427290.html

相关文章:

  • 消防隐患在线小程序的设计
  • 【Vue3】路由Params传参
  • 授权cleanmymac访问全部磁盘 Mac授权访问权限 cleanmymac缺少权限
  • Ubuntu/18.04 LTS下编译 BoringSSL 库
  • 【stm32项目】多功能智能家居室内灯光控制系统设计与实现(完整工程资料源码)
  • xss靶场详解
  • 华为的流程管理
  • 操作系统Linux
  • 1、.Net UI框架:MAUI - .Net宣传系列文章
  • Spring boot 使用 jSerialComm 对串口使用发送信息并接收
  • 江协科技STM32学习笔记(第10章 SPI通信)
  • 力扣热题100_回溯_22_括号生成
  • 【k8s】ubuntu24.04 containerd 手动从1.7.15 换为1.7.20
  • Java二十三种设计模式-备忘录模式(19/23)
  • js一些杂乱理解
  • 机器学习 之 线性回归算法
  • ThreadLoad如何防止内存溢出
  • 2024.8.19 学习记录 —— 作业
  • Java 阿里云视频直播开发流程
  • SQLite 轻量级的嵌入式关系型数据库的替代软件
  • Flutter-自适用高度PageView
  • 群晖NAS本地搭建可远程交互的大型语言模型LLM聊天机器人
  • TypeScript 构建工具之 webpack
  • conda环境下在pycharm中调试scrapy项目
  • contenteditable=“true“的标签限制字数的时候修改光标位置
  • 51单片机-LED灯蜂鸣器数码管按键DS18B20温度传感器
  • 笔记本一线品牌有哪些
  • mysql聚合函数和分组
  • ubuntu20.04+RealSenseD455
  • WAF绕过技巧