基于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());
    }

四、项目完整源码

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

相关推荐
Python私教1 小时前
Python ORM 框架 SQLModel 快速入门教程
android·java·python
problc3 小时前
Android中的引用类型:Weak Reference, Soft Reference, Phantom Reference 和 WeakHashMap
android
IH_LZH3 小时前
Broadcast:Android中实现组件及进程间通信
android·java·android studio·broadcast
去看全世界的云3 小时前
【Android】Handler用法及原理解析
android·java
机器之心4 小时前
o1 带火的 CoT 到底行不行?新论文引发了论战
android·人工智能
机器之心4 小时前
从架构、工艺到能效表现,全面了解 LLM 硬件加速,这篇综述就够了
android·人工智能
AntDreamer4 小时前
在实际开发中,如何根据项目需求调整 RecyclerView 的缓存策略?
android·java·缓存·面试·性能优化·kotlin
运维Z叔5 小时前
云安全 | AWS S3存储桶安全设计缺陷分析
android·网络·网络协议·tcp/ip·安全·云计算·aws
Reese_Cool7 小时前
【C语言二级考试】循环结构设计
android·java·c语言·开发语言