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

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

目录

一、项目演示

二、开发环境

三、项目详情

四、项目完整源码


一、项目演示

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

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

二、开发环境

三、项目详情

1.启动页

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

1. **延迟进入登录页面:**
   - 在 `onCreate()` 方法中,使用 `Handler` 和 `Runnable` 实现了一个延迟执行的功能,延迟时间为3秒。
   - `runnable` 对象的 `run()` 方法调用了 `tomainActive()` 方法,在延迟结束后启动 `LoginRegisterActivity` 并关闭当前的 `StartActivity`。

2. **计时器功能:**
   - 定义了一个内部类 `TimeCount`,继承自 `CountDownTimer`,用于执行一个四秒的倒计时操作,每隔一秒触发一次。
   - `onFinish()` 方法中,倒计时结束后移除了 `handler` 中的 `runnable` 对象,确保不会在倒计时结束后再次跳转到登录页面。

3. **Activity 生命周期方法:**
   - `onCreate()` 方法中,设置了布局文件 `activity_start.xml` 作为界面显示内容,并启动了延迟执行和计时器。
   - `onDestroy()` 方法中未显示重写,但在 `toMainActive()` 方法中的 `finish()` 方法确保了在跳转完成后关闭当前 Activity。

<?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 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` 方法中进行了布局初始化和事件监听的设置。

2. **获取验证码功能**:
   - 当手机号输入框内容发生变化时,监听器检查手机号是否为空。如果不为空,则启用获取验证码按钮,并且设置点击事件显示固定的验证码(这里是 "1234")。

3. **登录功能实现**:
   - 使用了 `TextWatcher` 监听器来检测手机号、密码和验证码输入框的变化。
   - 当所有字段都非空时,启用登录按钮。点击登录按钮时,首先检查验证码是否为 "1234",如果不是则提示验证码错误;否则,使用 `UserHelper` 类的方法检查用户的手机号和密码是否匹配。
   - 如果匹配成功,则提示登录成功,并将用户手机号保存到 `SharedPreferences` 中,并关闭登录界面;否则提示登录失败。

4. **注册链接处理**:
   - 点击注册链接 (`tvRegister`) 启动 `RegisterActivity`,允许用户注册新账号。

5. **关闭页面按钮处理**:
   - 点击关闭按钮 (`pageClose`) 关闭当前登录页面。

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

  @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 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 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 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 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 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` 类从数据库中获取和更新用户信息。
- 提供返回按钮和保存按钮的点击事件监听,以及保存成功或失败时的提示信息。

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

 /**
     * 初始化视图组件
     */
    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());
    }

四、项目完整源码

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


http://www.kler.cn/news/311887.html

相关文章:

  • Java ERP系统源码深度解析:Spring Cloud Alibaba和Spring Boot的微服务实战
  • 云WAF能做什么?看它如何帮你应对网络攻击
  • 武汉网站建设实施方案
  • 猫咪为什么不吃猫罐头?解决挑食小猫!美味主食罐推荐!
  • 2.4 数据库表字段约束
  • 水经微图PC版5.0.0即将内测
  • MATLAB数学规划:2.线性规划
  • 分享一个 在线拍卖系统 商品竞拍平台Java、python、php三个技术版本(源码、调试、LW、开题、PPT)
  • MATLAB系列03:分支语句和编程设计
  • 指挥中心操作台怎么布局更合理
  • Can‘t connect to local MySQL server through socket
  • 【线性规划求解系列】MATLAB中使用linprog解决线性规划问题
  • 【学术会议:中国杭州,机器学习和计算机应用面临的新的挑战问题和研究方向】第五届机器学习与计算机应用国际学术会议(ICMLCA 2024)
  • 大数据-141 - ClickHouse 集群 副本和分片 Zk 的配置 Replicated MergeTree原理详解
  • Linux 环境永久更换国内pip镜像源地址
  • 【MySQL】表的相关操作
  • 你敢相信吗,我用AI撸了一个在线计算器网站!
  • ElasticSearch7整合es-head,ES配置密码
  • 微软 Azure AI 服务免费试用及申请:语音识别、文本转语音、基于视觉、语言处理、文档分析等10大场景
  • ReentrantLock实现原理
  • opencv anaconda yolov5安装流程
  • 【C++】C++ STL探索:Priority Queue与仿函数的深入解析
  • Leetocde146. LRU 缓存
  • 梧桐数据库(WuTongDB):postgresql 12的CBO(Cost-Based Optimizer)优化器
  • 浅谈人工智能之基于HTTP方式调用本地QWen OPenAI接口(Java版)
  • 股指期权交易详细基础介绍
  • 图像亮度均衡算法
  • QFramework v1.0 使用指南 更新篇:20240918. 新增 BindableList
  • 利用反射实现动态代理
  • qiankun沙箱实现原理