【问题标题】:FIREMONKEY android how to switch activity from the same projetFIREMONKEY android如何从同一个项目切换活动
【发布时间】:2017-01-05 12:45:36
【问题描述】:

我的企业使用delphi和firemonkey开发android应用, 我想要一个带有 2 个屏幕的基本应用程序,并且可以从屏幕 A 转到屏幕 B 。在java中,通过制定意图很容易,但我不知道如何使用Firemonkey和Delphi来做到这一点。 我有一个项目“project1”,有 2 个单位。比方说“UnitA”和“UnitB”,那么包就是“com.embarcadero.project1”,className默认是“com.embarcadero.firemonkey.FMXNativeActivity”,但是每个Unit都有一个className吗? 我应该将哪个 className 传递给 Intent 以到达 unitB? (FMXNativeActivity默认设置在AndroidManifest.xml上自动创建)

【问题讨论】:

  • 产品附带的示例中有一个使用多个表单的示例。在 10.1 Berlin 中,它位于 C:\Users\Public\Documents\Embarcadero\Studio\18.0\Samples\Object Pascal\Multi-Device Samples\User Interface\Forms
  • FMXNativeActivity 是 FMX 框架展示应用的基础。项目中的所有其他表单都是由框架绘制的,它们不是活动(FMX 应用程序使用 NDK 和 OpenGL 绘制完整的用户界面,Android 没有原生控件)。您应该按照上面提到的示例,并简单地选择起始表单,您可以在 IDE 中设置它(Project/Options/Forms/Main form)。

标签: android delphi firemonkey


【解决方案1】:

我不确定你写的所有内容,但如果你在一个项目中只有 2 个 .pas,并且从第一个你想显示第二个,我知道 2 种切换方式:

第一种方式:你可以打开一个模态窗口

if not Assigned(FormUnitB) then
    FormUnitB:= TFormUnitB.Create(self);

FormUnitB.ShowModal(
    procedure(ModalResult: TModalResult)
    begin
        if ModalResult = mrOK then
            //nothing here, when you want to close you write it in the modal
    end);

第二种方式:使用布局:在 UnitA 中,放置一个空布局(例如 LayoutA)。在 UnitB 中,您放置另一个布局(LayoutB),它将包含 UnitB 的所有组件,当您要显示 UnitB 时,您将 LayoutB 放在 LayoutA 中

LayoutA.AddObject(FormUnitB.LayoutB);

注意:为此,您需要指定 UnitA 使用 UnitB。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多