EP 27: MockData come back with UI design in TopStore App

Hello, 各位 iT邦帮忙 的粉丝们大家好~~~

本篇是 Re: 从零开始用 Xamarin 技术来复刻过去开发的一个 App: TopStore 系列文的 EP27。

上一篇 EP26 谈到把 MockData 跟 DbService 透过 IDbService 的介面来完成做展示资料与实际资料作切换,不知是否有朋友想知道如何运用结合在 App 的实际操作上呢?

本篇 EP27 就来介绍介绍罗!


首先,来打开 SettingsPage.xaml 来编辑一下相关的 XAML 标记。
SettingsPage 的编辑 1

改成一个 Grid 为页面的 RootLayout,并在 Grid 第一列设计 Frame 於其中显示。
SettingsPage 的编辑 2

接着放了一个 Switch 并且将其 x:Name 命名为 dataChoiceSwitch,也针对其 Toggled 事件设定了其事件处理常式。
SettingsPage 的编辑 2

另外,再针对 Frame 的标记当中设计部分画面格式的标记。
SettingsPage 的编辑 4

在其 Frame 的标记中所使用的 Label 文字显示,有运用到先前 EP12EP17 等,介绍 XAML 标记的有关 Binding(系结) 的特殊处理的部分。

其用意是让 Label 的文字显示上能呼应使用者在 switch 的 "开/关" 操作时,让其显示的文字更加准确,若有兴趣的捧友可以再回顾一下唷!

这里稍微注意一下,前面的 XAML 编辑中有设定 Switch 的 Toggled 事件的事件处理常式,所以理论上在 SettingPage.xaml.cs 要看到这个事件处理常式的撰写。
SettingsPage.xaml.cs 的编辑 1

再针对 SettingsPage 覆写其 OnAppearing 方法。
SettingsPage.xaml.cs 的编辑 2

首先针对 OnAppearing 方法撰写如下程序。
SettingsPage.xaml.cs 的 OnAppearing 方法

再针对先前的 DataSwitch_Toggled 的事件处理常式撰写如下程序。
SettingsPage.xaml.cs 的 DataSwitch_Toggled 方法 1

而因为 DisplayAlert 是非同步方法,所以要再加上 async/await 的关键字的运用。
SettingsPage.xaml.cs 的 DataSwitch_Toggled 方法 2

最後,打开 App.xaml.cs 将原本 App 建构式当中的程序改成如下。
App.xaml.cs 的编辑

接下来就可以在双平台 (iOS、Android) 当中执行看看!

第一次执行起 App 时由於 Preferences 记录上的值会为 "false",所以会读取到原本 MockData 设计的假资料。
MockData 的显示

在 App 当中切换到 SettingsPage。
切换到 SettingPage

将其中的 switch 作切换到 ""。
切换到 switch

点选 "确定",进行切换 Data 来源。(若点选取消,会回到原本的设定)
切换 Data 来源

Alert 提醒使用者需 "手动" 重新启动 App。
手动重新启动 App

将 App 从背景执行中移除。
背景移除执行中的 App

再次启动 App 回到 SQLite DB 的资料载入到 App 当中。(在 EP26 中所建立的资料)
SQLite DB 的资料载入到 App 当中

这样 EP27 的介绍就大功告成罗~~~

有兴趣的朋友,可以在 App 中再切到 SettingsPage 当中把 swtich 的设定改回 "关",然後再次重新开启 App (记得也要把 App 从背景执行移除)。

再次打开 App 就会看到 MockData 的资料又载入回来罗!

下一篇 EP28 见罗!

嘛砂优枷~~~


<<:  <Day20> Subscribe — 订阅及时BidAsk五档报价资料

>>:  Day 20 测试router的前奏

[Day 20] Edge Impulse + BLE Sense实现唤醒词辨识(上)

在[Day 16]和[Day 17]「TFLM + BLE Sense + MP34DT05 就成了...

25 | 【进阶教学】什麽是 WordPress 区块小工具?

由於 WordPress 是不停改进的 CMS 系统,它们在 2021 年的 WordPress ...

第02天 - 环境建立(上)

前言: 印象中第一次写网页时,我连 Sublime text 的运作方式都很不习惯,因为每次打开时它...

组织可以在稽核的时侯,向供应商索取 ISMS 相关文件吗?

有几件事情需要先确认清楚 契约/合约的履约范围以及合约相关附件、履约相关文件是否明订供应商应遵守事项...

误用案例测试(Misuse case testing)最不可能包含在软件整合测试(integration test)中

-代码仓库:git 顾名思义,整合测试结合了代码单元、模组或子系统并对其进行测试。在托管代码储存库...