莱莱 发表于 2025-1-3 19:50:40

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

目录
一、项目演示
二、开发情况
三、项目详情


四、项目完备源码

一、项目演示

本项目素材、数据和布局页面参考均来自《蜜雪冰城》,在此特别声明感谢!
   基于Android Studio 蜜雪冰城(奶茶饮品)—原创

二、开发情况

https://i-blog.csdnimg.cn/direct/9bef2b631f904e43a1d910bf49e65333.png
三、项目详情

1.启动页
https://i-blog.csdnimg.cn/direct/f7d795bff48640ec9fe1ff42e030ebf5.png
这段代码是一个简朴的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.注册、登录
https://i-blog.csdnimg.cn/direct/aeaef1141a144a568279572b395ae500.png
这段代码实现了一个基本的注册页面功能:
- **视图与控件**:包罗关闭页面按钮、手机号、密码、确认密码的输入框以及跳转登录页面按钮和注册按钮。
- **功能与逻辑**:
  - 点击关闭按钮或跳转登录按钮可退出当前页面。
  - 注册按钮点击后,进行输入验证:
    - 查抄手机号、密码和确认密码是否为空。
    - 查抄确认密码与密码是否同等。
  - 使用 `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> https://i-blog.csdnimg.cn/direct/c60c747096ab4e13ba1f6a073aa5cd8f.png
这段代码实现了一个登录页面的功能,详细功能和特点如下:
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.首页
https://i-blog.csdnimg.cn/direct/314519c5452741e1af1eb892a0c78691.png
这段代码是一个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.点餐页面
https://i-blog.csdnimg.cn/direct/84ed367085c24d19959ec4007f5c9cb7.png
这段代码实现了一个点单页面的 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.订单页、订单详情页
https://i-blog.csdnimg.cn/direct/72fbaf48e5a24095aba822ed73582743.png
这段代码实现了一个订单页面的 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> https://i-blog.csdnimg.cn/direct/a05ef851f6664479b5856cd28e08f7c6.png
这段代码实现了一个订单详情页面的 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.地址页面、修改增长页
https://i-blog.csdnimg.cn/direct/acb9d5081fe148939b563dcaad56a23a.png
https://i-blog.csdnimg.cn/direct/a4760bed7d4a47b7913a0a5c92fc5015.png
https://i-blog.csdnimg.cn/direct/43fa513ec09c47db902e2d639b586a96.png
7.结算页面
https://i-blog.csdnimg.cn/direct/b0489767cfb846db9d76eb915326d9a8.png
这段代码实现了一个支付页面的 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.我的页面、关于我们页面
https://i-blog.csdnimg.cn/direct/9807ea562aa04dccab99675e0c3f2026.png
https://i-blog.csdnimg.cn/direct/f286debd78ea466689c9cb77ad5d613d.png
 这两个页面只用来显示登录和退出登录然后跳转编辑资料页面使用
9.编辑资料页面
https://i-blog.csdnimg.cn/direct/4b8a09df3e5945b9b23ae47eee0316a0.png
这段代码实现了一个用户信息管理页面的 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());
    }

四、项目完备源码

   
页: [1]
查看完整版本: 基于Android Studio 蜜雪冰城(奶茶饮品点餐)—原创