基于Android Studio 蜜雪冰城(奶茶饮品点餐)—原创

目录

一、项目演示

二、开发环境

三、项目详情

四、项目完整源码


一、项目演示

本项目素材、数据和布局页面参考均来自《蜜雪冰城》,在此特别声明感谢!

基于Android Studio 蜜雪冰城(奶茶饮品)---原创

二、开发环境

三、项目详情

1.启动页

这段代码是一个简单的Android应用程序启动活动(Activity),具体功能如下:

  1. **延迟进入登录页面:**
  • 在 `onCreate()` 方法中,使用 `Handler` 和 `Runnable` 实现了一个延迟执行的功能,延迟时间为3秒。

  • `runnable` 对象的 `run()` 方法调用了 `tomainActive()` 方法,在延迟结束后启动 `LoginRegisterActivity` 并关闭当前的 `StartActivity`。

  1. **计时器功能:**
  • 定义了一个内部类 `TimeCount`,继承自 `CountDownTimer`,用于执行一个四秒的倒计时操作,每隔一秒触发一次。

  • `onFinish()` 方法中,倒计时结束后移除了 `handler` 中的 `runnable` 对象,确保不会在倒计时结束后再次跳转到登录页面。

  1. **Activity 生命周期方法:**
  • `onCreate()` 方法中,设置了布局文件 `activity_start.xml` 作为界面显示内容,并启动了延迟执行和计时器。

  • `onDestroy()` 方法中未显示重写,但在 `toMainActive()` 方法中的 `finish()` 方法确保了在跳转完成后关闭当前 Activity。

XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#fff">

    <ImageView
        android:id="@+id/image_mxbc"
        android:layout_width="214.0dip"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="166.0dip"
        android:scaleType="centerInside"
        android:src="@drawable/img_mxbc" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="60.0dip"
        android:text="豫ICP备13006352号-7A"
        android:textColor="#777777"
        android:textSize="10sp" />

    <TextView
        android:id="@+id/count_down"
        android:layout_width="56.0dip"
        android:layout_height="28.0dip"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:layout_marginRight="20.0dip"
        android:layout_marginBottom="50.0dip"
        android:background="@drawable/bg_splash_count_down"
        android:gravity="center"
        android:text="跳过"
        android:textColor="#fff"
        android:textSize="11sp" />
</RelativeLayout>

2.注册、登录

这段代码实现了一个基本的注册页面功能:

  • **视图与控件**:包括关闭页面按钮、手机号、密码、确认密码的输入框以及跳转登录页面按钮和注册按钮。

  • **功能与逻辑**:

  • 点击关闭按钮或跳转登录按钮可退出当前页面。

  • 注册按钮点击后,进行输入验证:

  • 检查手机号、密码和确认密码是否为空。

  • 检查确认密码与密码是否一致。

  • 使用 `UserHelper` 类进行数据库操作,将用户信息添加到数据库中。

  • 根据操作结果显示注册成功或失败的提示消息,并结束当前页面。

这段代码通过简单的逻辑和界面设计,实现了用户注册的基本流程,确保了基本的输入验证和数据库操作功能。

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"
    tools:context=".Activity.RegisterActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="10dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <ImageView
            android:id="@+id/page_close"
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:layout_gravity="left"
            android:src="@drawable/icon_cart_close" />

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="150dp"
            android:layout_marginTop="40dp"
            android:src="@drawable/img_mxbc" />

        <EditText
            android:id="@+id/register_phone_number"
            android:layout_width="fill_parent"
            android:layout_height="40dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="40dp"
            android:layout_marginRight="15dp"
            android:background="@drawable/bg_corner_solid_f5f5f5_6dp"
            android:hint="手机号码"
            android:inputType="number"
            android:paddingLeft="20.0dip"
            android:textColor="@color/black"
            android:textColorHint="@color/grey_AAAAAA"
            android:textCursorDrawable="@drawable/shape_cursor_color"
            android:textSize="@dimen/text_size_13sp" />

        <EditText
            android:id="@+id/register_password"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:layout_marginRight="15dp"
            android:background="@drawable/bg_corner_solid_f5f5f5_6dp"
            android:hint="用户密码"
            android:inputType="textPassword"
            android:paddingLeft="20.0dip"
            android:textColor="@color/black"
            android:textColorHint="@color/grey_AAAAAA"
            android:textCursorDrawable="@drawable/shape_cursor_color"
            android:textSize="@dimen/text_size_13sp" />

        <EditText
            android:id="@+id/register_rpassword"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="20dp"
            android:layout_marginRight="15dp"
            android:background="@drawable/bg_corner_solid_f5f5f5_6dp"
            android:hint="用户密码"
            android:inputType="textPassword"
            android:paddingLeft="20.0dip"
            android:textColor="@color/black"
            android:textColorHint="@color/grey_AAAAAA"
            android:textCursorDrawable="@drawable/shape_cursor_color"
            android:textSize="@dimen/text_size_13sp" />

        <TextView
            android:id="@+id/tv_login"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:layout_marginRight="15dp"
            android:gravity="center|right"
            android:text="已有帐号,立即登录!"
            android:textColor="@color/black" />

        <TextView
            android:id="@+id/register_action"
            android:layout_width="fill_parent"
            android:layout_height="40dp"
            android:layout_marginLeft="@dimen/default_left_padding"
            android:layout_marginTop="50dp"
            android:layout_marginRight="@dimen/default_right_padding"
            android:background="@drawable/bg_login_action"
            android:enabled="true"
            android:gravity="center"
            android:text="立 即 注 册"
            android:textColor="@color/white"
            android:textSize="@dimen/text_size_16sp" />

    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

这段代码实现了一个登录页面的功能,具体功能和特点如下:

  1. **界面元素和事件绑定**:
  • 声明了各个控件(如关闭按钮、手机号输入框、密码输入框、获取验证码按钮、注册链接、登录按钮等)和辅助类(`UserHelper`)。

  • 在 `onCreate` 方法中进行了布局初始化和事件监听的设置。

  1. **获取验证码功能**:
  • 当手机号输入框内容发生变化时,监听器检查手机号是否为空。如果不为空,则启用获取验证码按钮,并且设置点击事件显示固定的验证码(这里是 "1234")。
  1. **登录功能实现**:
  • 使用了 `TextWatcher` 监听器来检测手机号、密码和验证码输入框的变化。

  • 当所有字段都非空时,启用登录按钮。点击登录按钮时,首先检查验证码是否为 "1234",如果不是则提示验证码错误;否则,使用 `UserHelper` 类的方法检查用户的手机号和密码是否匹配。

  • 如果匹配成功,则提示登录成功,并将用户手机号保存到 `SharedPreferences` 中,并关闭登录界面;否则提示登录失败。

  1. **注册链接处理**:
  • 点击注册链接 (`tvRegister`) 启动 `RegisterActivity`,允许用户注册新账号。
  1. **关闭页面按钮处理**:
  • 点击关闭按钮 (`pageClose`) 关闭当前登录页面。

总体来说,该代码实现了基本的用户登录流程,包括输入验证、验证码获取、登录验证和跳转注册等功能,适合用于一个简单的用户认证和管理系统。

java 复制代码
  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        // 初始化界面元素和事件监听
        initView();
        setupCloseButton();
        setupRegisterLink();
        setupLoginFunctionality();
        setupSmsCodeListener();
    }

3.首页

这段代码是一个Android的片段(Fragment),实现了以下功能:

  • 显示一个轮播广告(使用了第三方库 `Banner`)。

  • 根据用户登录状态显示不同的内容:已登录则显示用户信息和订单选项,未登录则显示登录提示和登录按钮。

  • 点击订单选项(inshop 和 takeout)时跳转到相应的订单处理页面。

  • 点击用户信息区域时根据登录状态跳转到个人信息页面或登录页面。

主要用到了 `Glide` 库加载图片,并进行了一些视图初始化和点击事件处理的设置。

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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/grey_f4f4f7"
    android:orientation="vertical"
    tools:context=".Fragment.HomeFragment">

    <ScrollView
        android:layout_width="match_parent"
        android:scrollbars="none"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <LinearLayout
                android:id="@+id/home_user_layout"
                android:layout_width="fill_parent"
                android:layout_height="70dp"
                android:layout_marginLeft="8.0dip"
                android:layout_marginTop="-37.0dip"
                android:layout_marginRight="8.0dip"
                android:background="@drawable/home_01"
                android:gravity="center"
                android:orientation="horizontal">

                <androidx.appcompat.widget.AppCompatImageView
                    android:id="@+id/header_avatar"
                    android:layout_width="32.0dip"
                    android:layout_height="32.0dip"
                    android:layout_marginLeft="16.0dip"
                    android:src="@drawable/icon_not_login_user" />

                <LinearLayout
                    android:layout_width="0.0dip"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="14.0dip"
                    android:layout_weight="1"
                    android:orientation="vertical">

                    <TextView
                        android:id="@+id/user_name"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="尊敬的会员"
                        android:textColor="@color/black"
                        android:textSize="@dimen/text_size_16sp"
                        android:textStyle="bold" />

                </LinearLayout>

                <TextView
                    android:id="@+id/tv_login"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="20.0dip"
                    android:text="注册/登录"
                    android:textColor="@color/themeRedColor"
                    android:textSize="@dimen/text_size_13sp"
                    android:textStyle="bold"
                    android:visibility="gone" />

                <LinearLayout
                    android:id="@+id/ll_show"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:orientation="horizontal">

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:gravity="center"
                        android:orientation="vertical">

                        <TextView
                            android:id="@+id/textView5"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:gravity="center"
                            android:text="0"
                            android:textColor="@color/black" />

                        <TextView
                            android:id="@+id/textView7"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="4dp"
                            android:gravity="center"
                            android:text="雪王币"
                            android:textColor="@color/black" />
                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_marginLeft="15dp"
                        android:layout_marginRight="15dp"
                        android:layout_weight="1"
                        android:gravity="center"
                        android:orientation="vertical">

                        <TextView
                            android:id="@+id/textView6"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:gravity="center"
                            android:text="0"
                            android:textColor="@color/black" />

                        <TextView
                            android:id="@+id/textView8"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="4dp"
                            android:gravity="center"
                            android:text="优惠卷"
                            android:textColor="@color/black" />
                    </LinearLayout>
                </LinearLayout>
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="8dp"
                android:layout_marginTop="10dp"
                android:layout_marginRight="8dp"
                android:background="@drawable/home_01"
                android:orientation="vertical">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <ImageView
                        android:id="@+id/inshop"
                        android:layout_width="match_parent"
                        android:layout_height="150dp"
                        android:layout_weight="1"
                        android:src="@drawable/inshop" />

                    <ImageView
                        android:id="@+id/takeout"
                        android:layout_width="match_parent"
                        android:layout_height="150dp"
                        android:layout_weight="1"
                        android:src="@drawable/takeout" />
                </LinearLayout>

                <View
                    android:id="@+id/view4"
                    android:layout_width="match_parent"
                    android:layout_height="1dp"
                    android:layout_marginLeft="16.0dip"
                    android:layout_marginTop="5dp"
                    android:layout_marginRight="16.0dip"
                    android:background="@color/grey_150A5E_5" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginTop="5dp"
                    android:orientation="horizontal">

                    <ImageView
                        android:id="@+id/imageView4"
                        android:layout_width="match_parent"
                        android:layout_height="90dp"
                        android:layout_weight="1"
                        android:src="@drawable/home_03" />

                    <ImageView
                        android:id="@+id/imageView5"
                        android:layout_width="match_parent"
                        android:layout_height="90dp"
                        android:layout_weight="1"
                        android:src="@drawable/home_04" />

                    <ImageView
                        android:id="@+id/imageView6"
                        android:layout_width="match_parent"
                        android:layout_height="90dp"
                        android:layout_weight="1"
                        android:src="@drawable/home_001" />

                    <ImageView
                        android:id="@+id/imageView7"
                        android:layout_width="match_parent"
                        android:layout_height="90dp"
                        android:layout_weight="1"
                        android:src="@drawable/home_02" />

                </LinearLayout>
            </LinearLayout>

            <TextView
                android:id="@+id/tab_"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginLeft="8dp"
                android:layout_marginTop="15dp"
                android:layout_marginRight="8dp"
                android:text="甜蜜资讯"
                android:textColor="@color/black"
                android:textSize="@dimen/text_size_16sp"
                android:textStyle="bold" />

            <ImageView
                android:id="@+id/img_1"
                android:layout_width="match_parent"
                android:layout_height="120dp"
                android:layout_marginLeft="8dp"
                android:layout_marginTop="10dp"
                android:layout_marginRight="8dp"
                android:scaleType="fitXY"
                android:src="@drawable/banner2" />

            <ImageView
                android:id="@+id/img_2"
                android:layout_width="match_parent"
                android:layout_height="120dp"
                android:layout_marginLeft="8dp"
                android:layout_marginTop="10dp"
                android:layout_marginRight="8dp"
                android:scaleType="fitXY"
                android:src="@drawable/banner3" />

        </LinearLayout>
    </ScrollView>

</LinearLayout>

4.点餐页面

这段代码实现了一个点单页面的 Android Fragment,主要功能包括:

  • 展示菜单分类和产品列表,并支持根据搜索关键字进行筛选显示。

  • 根据用户登录状态动态展示地址选择、结算功能,并处理相应的点击事件。

  • 使用 `Gson` 解析本地 JSON 数据来加载菜单信息。

  • 实时更新总价格显示,并支持用户在不同订单类型(自提或外送)之间切换。

该代码还包括了处理返回按钮、清空订单和地址信息等相关逻辑。

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:id="@+id/fragment_takeOrder"
    tools:context=".Fragment.TakeOrderFragment">

    <LinearLayout
        android:id="@+id/linearLayout3"
        android:layout_width="0dp"
        android:layout_height="30dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:orientation="horizontal"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <TextView
            android:id="@+id/tv_inshop"
            android:layout_width="50dp"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="自提"
            android:textColor="@color/black"
            android:textSize="18sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/tv_takeout"
            android:layout_width="50dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="10dp"
            android:gravity="center"
            android:text="外送"
            android:textColor="@color/black_40"
            android:textSize="18sp"
            android:textStyle="bold" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/bg_corner_solid_f5f5f5_6dp"
            android:gravity="center|left"
            android:orientation="horizontal"
            android:padding="3dp">

            <ImageView
                android:id="@+id/img_search"
                android:layout_width="15dp"
                android:layout_height="15dp"
                android:layout_marginLeft="10dp"
                android:src="@drawable/icon_search" />

            <EditText
                android:id="@+id/et_search"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_weight="1"
                android:background="@color/grey_E6E6E6"
                android:ems="10"
                android:hint="冰鲜柠檬茶"
                android:inputType="textPersonName"
                android:textSize="12sp" />
        </LinearLayout>

    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout4"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:orientation="vertical"
        app:layout_constraintEnd_toEndOf="@+id/linearLayout3"
        app:layout_constraintStart_toStartOf="@+id/linearLayout3"
        app:layout_constraintTop_toBottomOf="@+id/linearLayout3">

        <LinearLayout
            android:id="@+id/ll_address"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginBottom="10dp"
            android:gravity="center|left"
            android:orientation="horizontal"
            android:visibility="gone">

            <TextView
                android:id="@+id/tv_address"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="配送至 · 陕西省"
                android:textColor="@color/black"
                android:textSize="16sp" />

            <ImageView
                android:id="@+id/imageView2"
                android:layout_width="10dp"
                android:layout_height="10dp"
                android:layout_marginLeft="2dp"
                android:src="@drawable/icon_arrow_dark_next" />
        </LinearLayout>

        <TextView
            android:id="@+id/textView11"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="蜜雪冰城(总店)"
            android:textColor="@color/black" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout5"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginTop="8dp"
        android:layout_marginBottom="2dp"
        android:orientation="horizontal"
        app:layout_constraintBottom_toTopOf="@+id/bottom_layout"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/linearLayout4">

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/rv_menu"
            android:layout_width="80dp"
            android:layout_height="match_parent" />

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/rv_menuItem"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="10dp"
            android:layout_weight="1"></androidx.recyclerview.widget.RecyclerView>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/bottom_layout"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@color/white"
        android:clipChildren="false"
        android:orientation="vertical"
        android:padding="5dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent">

        <FrameLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="horizontal">

            <FrameLayout
                android:id="@+id/cart_anim"
                android:layout_width="38.0dip"
                android:layout_height="40.0dip"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="9.0dip"
                android:layout_marginRight="12.0dip">

                <ImageView
                    android:id="@+id/order_cart"
                    android:layout_width="31.0dip"
                    android:layout_height="35.0dip"
                    android:layout_gravity="center_vertical"
                    android:layout_marginBottom="2.0dip"
                    android:src="@drawable/icon_cart" />

                <TextView
                    android:id="@+id/order_goods_count"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center|right|top"
                    android:background="@drawable/icon_bg_number_tip"
                    android:gravity="center"
                    android:textColor="@color/white"
                    android:textSize="@dimen/text_size_10sp"
                    android:visibility="gone" />
            </FrameLayout>

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center|right"
                android:layout_marginRight="123.0dip"
                android:orientation="vertical">

                <RelativeLayout
                    android:id="@+id/price_layout"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:orientation="horizontal">

                    <TextView
                        android:id="@+id/delivery_fee"
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:layout_alignBottom="@id/total_price"
                        android:layout_alignParentTop="true"
                        android:layout_marginTop="0dp"
                        android:layout_marginRight="6.0dip"
                        android:layout_marginBottom="2.0dip"
                        android:layout_toLeftOf="@id/total_tip"
                        android:gravity="bottom"
                        android:text="另需配送费¥2"
                        android:textColor="@color/grey_FFAAAAAA"
                        android:textSize="@dimen/text_size_12sp"
                        android:visibility="invisible" />

                    <TextView
                        android:id="@+id/total_price"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:text="¥0"
                        android:textColor="@color/black_333333"
                        android:textSize="16sp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/total_tip"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignBottom="@id/total_price"
                        android:layout_marginBottom="2.0dip"
                        android:layout_toLeftOf="@id/total_price"
                        android:text="合计:"
                        android:textColor="@color/black"
                        android:textSize="@dimen/text_size_12sp" />
                </RelativeLayout>

    </LinearLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

5.订单页、订单详情页

这段代码实现了一个订单页面的 Android Fragment,主要功能包括:

  • 根据用户登录状态,显示对应手机号的订单列表。

  • 当用户未登录时,显示登录提示信息。

  • 当用户已登录且有订单时,显示订单列表,并提供适配器来展示订单信息。

  • 提供了 onResume 方法来在 Fragment 可见时刷新订单列表。

  • 包括一个返回按钮的处理逻辑,但具体操作未实现。

该代码使用了 `ListView` 来展示订单,通过 `SharedPreferences` 获取用户手机号,并使用 `OrderHelper` 类来操作订单数据。

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:background="@color/grey_F5F5F5"
    tools:context=".Fragment.OrderFragment">

    <LinearLayout
        android:id="@+id/linearLayout6"
        android:layout_width="0dp"
        android:layout_height="40dp"
        android:background="@color/white"
        android:orientation="horizontal"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <TextView
            android:id="@+id/tv_title"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="订单管理"
            android:textColor="@color/black"
            android:textSize="18sp"
            android:textStyle="bold" />

    </LinearLayout>

    <ListView
        android:id="@+id/lv"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginStart="4dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="4dp"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp"
        android:scrollbars="none"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/linearLayout6" />

    <ImageView
        android:id="@+id/img_null"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:src="@drawable/img_empty_order"
        android:visibility="visible"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/linearLayout6" />
</androidx.constraintlayout.widget.ConstraintLayout>

这段代码实现了一个订单详情页面的 Android 活动(Activity),功能包括:

  • 根据传入的意图显示订单的详细信息,包括订单类型(自提或外送)、时间、订单号、商品数量和总金额。

  • 根据订单类型调整显示内容,包括是否显示外送费用和外送布局的可见性。

  • 根据用户手机号和订单号查询订单数据,并使用自定义的适配器 `OrderDetailsAdapter` 显示订单详情列表。

  • 提供了返回按钮和再来一单按钮的点击事件处理逻辑。

该活动通过 `SharedPreferences` 获取用户手机号,并使用 `OrderHelper` 类来操作订单数据。

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:background="@color/grey_F8F8F8"
    tools:context=".Activity.OrderDetailsActivity">

    <FrameLayout
        android:id="@+id/page_title_layout"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:background="@drawable/img_order_detail_bg"
        android:orientation="horizontal"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <FrameLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">

            <ImageView
                android:id="@id/page_back"
                android:layout_width="45.0dip"
                android:layout_height="60dp"
                android:paddingLeft="12.0dip"
                android:paddingTop="15dp"
                android:paddingRight="12.0dip"
                android:paddingBottom="12.0dip"
                android:scaleType="centerInside"
                android:src="@drawable/icon_page_back_white" />

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/page_title"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="28.0dip"
                    android:layout_marginTop="60dp"
                    android:ellipsize="none"
                    android:maxWidth="260.0dip"
                    android:singleLine="true"
                    android:text="订单已完成"
                    android:textColor="@color/white"
                    android:textSize="@dimen/text_size_18sp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/page_status_tip"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="28.0dip"
                    android:layout_marginTop="12.0dip"
                    android:ellipsize="none"
                    android:maxWidth="200.0dip"
                    android:maxLines="2"
                    android:text="如未取餐,请及时到店领取,祝您用餐愉快"
                    android:textColor="@color/white"
                    android:textSize="@dimen/text_size_12sp" />
            </LinearLayout>

            <ImageView
                android:id="@+id/page_img_action"
                android:layout_width="130.0dip"
                android:layout_height="90.0dip"
                android:layout_gravity="bottom|center|right"
                android:layout_marginRight="@dimen/default_right_padding"
                android:layout_marginBottom="15dp"
                android:src="@drawable/img_order_finish_king" />

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="10.0dip"
                android:layout_gravity="bottom"
                android:background="@drawable/bg_corner_solid_ffffff_top_12dp" />

        </FrameLayout>
    </FrameLayout>

    <ScrollView
        android:id="@+id/scrollView2"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        android:scrollbars="none"
        app:layout_constraintBottom_toTopOf="@+id/linearLayout9"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/page_title_layout">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginTop="5dp"
                android:background="@drawable/bg_corner_solid_ffffff_12dp"
                android:gravity="center"
                android:orientation="vertical"
                android:padding="10dp">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:orientation="vertical">

                        <TextView
                            android:id="@+id/textView9"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:text="蜜雪冰城(总店)"
                            android:textColor="@color/black"
                            android:textSize="16sp"
                            android:textStyle="bold" />

                        <TextView
                            android:id="@+id/textView24"
                            android:layout_width="250dp"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="4dp"
                            android:text="河南省郑州市金水区文化路与北环交叉口瀚海·北金商务A座16楼"
                            android:textSize="12sp" />
                    </LinearLayout>

                    <ImageView
                        android:id="@+id/imageView11"
                        android:layout_width="25dp"
                        android:layout_height="25dp"

                        app:srcCompat="@drawable/icon_order_location" />

                    <ImageView
                        android:id="@+id/imageView12"
                        android:layout_width="25dp"
                        android:layout_height="25dp"
                        android:layout_marginLeft="20dp"
                        android:layout_marginRight="10dp"
                        app:srcCompat="@drawable/icon_order_phone" />

                </LinearLayout>

                <View
                    android:id="@+id/view8"
                    android:layout_width="match_parent"
                    android:layout_height="1.0dip"
                    android:layout_marginLeft="4dp"
                    android:layout_marginTop="10dp"
                    android:layout_marginRight="4dp"
                    android:layout_marginBottom="10dp"
                    android:layout_weight="1"
                    android:background="@color/grey_F5F5F5" />

                <ListView
                    android:id="@+id/lv"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:scrollbars="none" />

                <View
                    android:id="@+id/view9"
                    android:layout_width="match_parent"
                    android:layout_height="1.0dip"
                    android:layout_marginLeft="4dp"
                    android:layout_marginTop="10dp"
                    android:layout_marginRight="4dp"
                    android:layout_marginBottom="10dp"
                    android:layout_weight="1"
                    android:background="@color/grey_F5F5F5" />

                <LinearLayout
                    android:id="@+id/ll_peisong"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:gravity="center"
                    android:orientation="horizontal">

                    <TextView
                        android:id="@+id/textView22"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="配送费"
                        android:textColor="@color/black" />

                    <ImageView
                        android:id="@+id/imageView10"
                        android:layout_width="20dp"
                        android:layout_height="20dp"
                        app:srcCompat="@drawable/icon_question" />

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:gravity="center|right"
                        android:orientation="horizontal">

                        <TextView
                            android:id="@+id/tv_peisong"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="4dp"
                            android:text="¥2"
                            android:textColor="@color/black"
                            android:textSize="14sp" />
                    </LinearLayout>
                </LinearLayout>

                <View
                    android:id="@+id/view_peisong"
                    android:layout_width="match_parent"
                    android:layout_height="1.0dip"
                    android:layout_marginLeft="4dp"
                    android:layout_marginTop="10dp"
                    android:layout_marginRight="4dp"
                    android:layout_marginBottom="10dp"
                    android:layout_weight="1"
                    android:background="@color/grey_F5F5F5" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginLeft="@dimen/default_left_padding"
                    android:layout_marginTop="5dip"
                    android:layout_marginRight="@dimen/default_right_padding"
                    android:layout_marginBottom="9dip"
                    android:gravity="bottom|center|right"
                    android:orientation="horizontal">

      
            </LinearLayout>

                        <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_marginTop="12.0dip"
                    android:layout_marginBottom="12.0dip"
                    android:orientation="vertical">

                    <LinearLayout
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center_vertical"
                        android:orientation="horizontal">

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="16.0dip"
                            android:text="下单时间"
                            android:textColor="@color/black"
                            android:textSize="@dimen/text_size_13sp" />

                        <TextView
                            android:id="@+id/order_time"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="16.0dip"
                            android:textColor="@color/black"
                            android:textSize="@dimen/text_size_13sp" />
                    </LinearLayout>

                    <RelativeLayout
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="8.0dip">

                        <TextView
                            android:id="@+id/orderId_tip"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_alignParentLeft="true"
                            android:layout_centerVertical="true"
                            android:layout_marginLeft="16.0dip"
                            android:text="订单号码"
                            android:textColor="@color/black"
                            android:textSize="@dimen/text_size_13sp" />

                        <TextView
                            android:id="@+id/orderId"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_centerVertical="true"
                            android:layout_marginLeft="16.0dip"
                            android:layout_toRightOf="@id/orderId_tip"
                            android:ellipsize="end"
                            android:maxWidth="185.0dip"
                            android:maxLines="1"
                            android:textColor="@color/black"
                            android:textSize="@dimen/text_size_13sp" />
                    </RelativeLayout>

                    <LinearLayout
                        android:id="@id/remark_layout"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="8.0dip"
                        android:orientation="horizontal">

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="16.0dip"
                            android:text="备注"
                            android:textColor="@color/black"
                            android:textSize="@dimen/text_size_13sp" />

                        <TextView
                            android:id="@id/remark"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="42.0dip"
                            android:text="无"
                            android:textColor="@color/black"
                            android:textSize="@dimen/text_size_13sp" />
                    </LinearLayout>

                </LinearLayout>
            </FrameLayout>

        </LinearLayout>
    </ScrollView>

    <LinearLayout
        android:id="@+id/linearLayout9"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/white"
        android:gravity="center|right"
        android:orientation="horizontal"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent">

        <TextView
            android:id="@+id/one_more"
            android:layout_width="70dp"
            android:layout_height="25dp"
            android:layout_below="@id/price_layout"
            android:layout_alignParentRight="true"
            android:layout_marginRight="10dp"
            android:background="@drawable/bg_corner_solid_fc3f41_4dp"
            android:enabled="true"
            android:gravity="center"
            android:text="再来一单"
            android:textColor="@color/red_FC3F41"
            android:textSize="@dimen/text_size_12sp" />
    </LinearLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

6.地址页面、修改增加页

7.结算页面

这段代码实现了一个支付页面的 Android 活动(Activity),功能包括:

  • 根据订单类型(自提或外送)显示相应的配送地址和费用信息。

  • 根据用户选择的支付方式(微信或支付宝)更新支付操作。

  • 显示用户的订单列表,并提供支付操作的点击事件处理逻辑。

  • 使用 `SharedPreferences` 获取用户的地址信息和手机号,使用 `TakeOrderHelper` 和 `OrderHelper` 处理订单数据的存储和获取。

该活动允许用户选择支付方式,并在确认支付后保存订单并返回到主界面。

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"
    tools:context=".Activity.PayActivity">

    <LinearLayout
        android:id="@+id/linearLayout6"
        android:layout_width="0dp"
        android:layout_height="40dp"
        android:background="@color/red_FC3F41"
        android:orientation="horizontal"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

      
        android:layout_height="0dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="10dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        android:scrollbars="none"
        app:layout_constraintBottom_toTopOf="@+id/frameLayout"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/linearLayout6">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/bg_corner_solid_ffffff_12dp"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/tv_title"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="@dimen/default_left_padding"
                    android:layout_marginTop="9.0dip"
                    android:layout_marginRight="@dimen/default_right_padding"
                    android:text="TextView"
                    android:textColor="@color/red_FF0F4B"
                    android:textSize="18sp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/tv_address"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="@dimen/default_left_padding"
                    android:layout_marginTop="10dp"
                    android:layout_marginRight="@dimen/default_right_padding"
                    android:text="TextView"
                    android:textColor="@color/black" />

                <TextView
                    android:id="@+id/tv_name_phone"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="@dimen/default_left_padding"
                    android:layout_marginTop="5dp"
                    android:layout_marginRight="@dimen/default_right_padding"
                    android:ellipsize="end"
                    android:maxLines="1"
                    android:text="TextView" />

                <LinearLayout
                    android:id="@+id/ll_dianpu"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginLeft="@dimen/default_left_padding"
                    android:layout_marginTop="10dp"
                    android:layout_marginRight="@dimen/default_right_padding"
                    android:layout_marginBottom="10dp"
                    android:orientation="horizontal">

                    <TextView
                        android:id="@+id/textView34"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="蜜雪冰城(总店)" />

                    <TextView
                        android:id="@+id/textView35"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:gravity="center|right"
                        android:text="订单由第三方骑手配送"
                        android:textColor="@android:color/holo_red_light" />
                </LinearLayout>

            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"

                android:layout_marginTop="15dp"
                android:background="@drawable/bg_corner_solid_ffffff_12dp"
                android:orientation="vertical">

                <ListView
                    android:id="@+id/lv"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="@dimen/default_left_padding"
                    android:layout_marginTop="9.0dip"
                    android:layout_marginRight="@dimen/default_right_padding"
                    android:scrollbars="none" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginLeft="@dimen/default_left_padding"
                    android:layout_marginTop="9.0dip"
                    android:layout_marginRight="@dimen/default_right_padding"
                    android:gravity="center"
                    android:orientation="horizontal">

                    <TextView
                        android:id="@+id/textView22"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="配送费"
                        android:textColor="@color/black" />

                    <ImageView
                        android:id="@+id/imageView10"
                        android:layout_width="20dp"
                        android:layout_height="20dp"
                        app:srcCompat="@drawable/icon_question" />

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:gravity="center|right"
                        android:orientation="horizontal">

                        <TextView
                            android:id="@+id/tv_peisong"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginLeft="4dp"
                            android:text="¥2"
                            android:textColor="@color/black"
                            android:textSize="14sp" />
                    </LinearLayout>
                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginLeft="@dimen/default_left_padding"
                    android:layout_marginTop="9.0dip"
                    android:layout_marginRight="@dimen/default_right_padding"
                    android:orientation="horizontal">

                    <TextView
                        android:id="@+id/textView26"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:text="打包费"
                        android:textColor="@color/black" />

                    <TextView
                        android:id="@+id/textView27"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:gravity="center|right"
                        android:text="¥0"
                        android:textColor="@color/black" />
                </LinearLayout>

                <View
                    android:id="@+id/view6"
                    android:layout_width="match_parent"
                    android:layout_height="1.0dip"
                    android:layout_marginLeft="12.0dip"
                    android:layout_marginTop="10dp"
                    android:layout_marginRight="12.0dip"
                    android:layout_marginBottom="10dp"
                    android:background="@color/grey_F5F5F5" />

              

                <View
                    android:id="@+id/view7"
                    android:layout_width="match_parent"
                    android:layout_height="1.0dip"
                    android:layout_marginLeft="12.0dip"
                    android:layout_marginTop="10dp"
                    android:layout_marginRight="12.0dip"
                    android:layout_marginBottom="10dp"
                    android:background="@color/grey_F5F5F5" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginLeft="@dimen/default_left_padding"
                    android:layout_marginTop="5dip"
                    android:layout_marginRight="@dimen/default_right_padding"
                    android:layout_marginBottom="9dip"
                    android:gravity="bottom|center|right"
                    android:orientation="horizontal">

                    <TextView
                        android:id="@+id/tv_num"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="共计10件,合计 " />

                    <TextView
                        android:id="@+id/tv_total"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="¥55"
                        android:textColor="@color/black"
                        android:textSize="16sp"
                        android:textStyle="bold" />
                </LinearLayout>

            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginTop="15dp"
                android:background="@drawable/bg_corner_solid_ffffff_12dp"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/textView19"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="@dimen/default_left_padding"
                    android:layout_marginTop="9.0dip"
                    android:layout_marginRight="@dimen/default_right_padding"
                    android:text="支付方式"
                    android:textColor="@color/black"
                    android:textSize="@dimen/text_size_16sp"
                    android:textStyle="bold" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginLeft="@dimen/default_left_padding"
                    android:layout_marginTop="9.0dip"
                    android:layout_marginRight="@dimen/default_right_padding"
                    android:layout_marginBottom="9dip"
                    android:orientation="vertical">

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:orientation="horizontal">

                        <ImageView
                            android:id="@+id/imageView3"
                            android:layout_width="25dp"
                            android:layout_height="25dp"
                            app:srcCompat="@drawable/icon_pay_wechat" />

                        <TextView
                            android:id="@+id/textView20"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_marginLeft="5dp"
                            android:layout_weight="1"
                            android:gravity="center|left"
                            android:text="微信"
                            android:textColor="@color/black" />

                        <RadioButton
                            android:id="@+id/rb_weixin"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:buttonTint="@color/red_FF0F4B"
                            android:checked="true" />

                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="15dp"
                        android:gravity="center"
                        android:orientation="horizontal">

                        <ImageView
                            android:id="@+id/imageView9"
                            android:layout_width="25dp"
                            android:layout_height="25dp"
                            app:srcCompat="@drawable/icon_pay_alipay" />

                        <TextView
                            android:id="@+id/textView21"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_marginLeft="5dp"
                            android:layout_weight="1"
                            android:gravity="center|left"
                            android:text="支付宝"
                            android:textColor="@color/black" />

                        <RadioButton
                            android:id="@+id/rb_zhifubao"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:buttonTint="@color/red_FF0F4B" />

                    </LinearLayout>
                </LinearLayout>

            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_gravity="center"
                android:layout_marginTop="15dp"
                android:layout_marginBottom="15dp"
                android:background="@drawable/bg_corner_solid_ffffff_12dp"
                android:orientation="vertical">

                <LinearLayout
                    android:id="@+id/tableware_layout"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="@dimen/default_left_padding"
                    android:layout_marginTop="9.0dip"
                    android:layout_marginRight="@dimen/default_right_padding"
                    android:layout_marginBottom="4.0dip"
                    android:gravity="center_vertical"
                    android:orientation="horizontal"
                    android:paddingTop="12.0dip"
                    android:paddingBottom="12.0dip">

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="12.0dip"
                        android:text="餐具"
                        android:textColor="@color/black"
                        android:textSize="@dimen/text_size_14sp" />

                    <TextView
                        android:id="@+id/tableware"
                        android:layout_width="0.0dip"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="12.0dip"
                        android:layout_marginRight="4.0dip"
                        android:layout_weight="1.0"
                        android:gravity="center|right"
                        android:hint="按餐量提供"
                        android:singleLine="true"
                        android:textColor="@color/black"
                        android:textSize="@dimen/text_size_14sp" />

                </LinearLayout>

                <LinearLayout
                    android:id="@+id/remark_layout"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="@dimen/default_left_padding"
                    android:layout_marginTop="5dip"
                    android:layout_marginRight="@dimen/default_right_padding"
                    android:gravity="center_vertical"
                    android:orientation="horizontal"
                    android:paddingTop="12.0dip"
                    android:paddingBottom="12.0dip">

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="12.0dip"
                        android:text="备注"
                        android:textColor="@color/black"
                        android:textSize="@dimen/text_size_14sp" />

                    <TextView
                        android:id="@+id/remark"
                        android:layout_width="0.0dip"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_marginLeft="12.0dip"
                        android:layout_marginRight="4.0dip"
                        android:layout_weight="1.0"
                        android:ellipsize="end"
                        android:gravity="center|right"
                        android:hint="暂不支持通过备注定制口味"
                        android:singleLine="true"
                        android:textColor="@color/black"
                        android:textSize="@dimen/text_size_14sp" />

                </LinearLayout>
            </LinearLayout>

        </LinearLayout>
    </ScrollView>

    <FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:background="@color/white"
        android:orientation="horizontal"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent">

        <View
            android:id="@+id/bottom_line"
            android:layout_width="fill_parent"
            android:layout_height="0.5dip"
            android:background="@color/grey_eeeeee" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="64.0dip"
            android:layout_marginLeft="@dimen/default_left_padding"
            android:gravity="center"
            android:text="实付:"
            android:textColor="@color/black"
            android:textSize="@dimen/text_size_12sp" />

    </FrameLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

8.我的页面、关于我们页面

这两个页面只用来显示登录和退出登录然后跳转编辑资料页面使用

9.编辑资料页面

这段代码实现了一个用户信息管理页面的 Android 活动(Activity),功能包括:

  • 显示用户的手机号、用户名和密码,并允许用户修改并保存这些信息。

  • 使用 `SharedPreferences` 获取用户的手机号,通过 `UserHelper` 类从数据库中获取和更新用户信息。

  • 提供返回按钮和保存按钮的点击事件监听,以及保存成功或失败时的提示信息。

该活动允许用户查看和修改用户名和密码,并将修改后的信息更新到数据库中。

java 复制代码
 /**
     * 初始化视图组件
     */
    private void initView() {
        // 通过 ID 查找视图组件
        pageBack = findViewById(R.id.page_back);
        etName = findViewById(R.id.et_name);
        etPassword = findViewById(R.id.et_password);
        tvPhone = findViewById(R.id.tv_phone);
        btnSave = findViewById(R.id.btn_save);
        userHelper = new UserHelper(this); // 创建 UserHelper 实例
    }

    /**
     * 设置监听器
     */
    private void setUpListeners() {
        // 设置返回按钮的点击事件
        pageBack.setOnClickListener(v -> finish());

        // 设置保存按钮的点击事件
        btnSave.setOnClickListener(v -> saveUserInfo());
    }

四、项目完整源码

👇👇👇👇👇快捷获取方式👇👇👇👇👇

相关推荐
潜龙95273 小时前
第3.2.3节 Android动态调用链路的获取
android·调用链路
追随远方4 小时前
Android平台FFmpeg音视频开发深度指南
android·ffmpeg·音视频
撰卢5 小时前
MySQL 1366 - Incorrect string value:错误
android·数据库·mysql
恋猫de小郭6 小时前
Flutter 合并 ‘dot-shorthands‘ 语法糖,Dart 开始支持交叉编译
android·flutter·ios
牛马程序小猿猴6 小时前
15.thinkphp的上传功能
android
林家凌宇6 小时前
Flutter 3.29.3 花屏问题记录
android·flutter·skia
时丶光7 小时前
Android 查看 Logcat (可纯手机方式 无需电脑)
android·logcat
血手人屠喵帕斯7 小时前
事务连接池
android·adb
恋猫de小郭8 小时前
React Native 前瞻式重大更新 Skia & WebGPU & ThreeJS,未来可期
android·javascript·flutter·react native·react.js·ios
一人一萧十只猫�8 小时前
MySQL 从入门到精通(三):日志管理详解 —— 从排错到恢复的核心利器
android·mysql·adb