【问题标题】:Is it possible to toggle between 2 GUIs from the same Android Activity using a button?是否可以使用按钮在同一个 Android Activity 的 2 个 GUI 之间切换?
【发布时间】:2020-12-16 21:32:15
【问题描述】:

我正在编写我的第一个包含单个活动的 android 应用程序。该活动创建一个服务器,侦听数据,解码和处理数据,并显示它。我想以两种不同的方式显示服务器数据,按下按钮在它们之间切换。 (默认模式和调试器模式)。服务器需要始终继续运行。最简单的方法是什么?

模式 A:应用程序的默认设置。它只会从服务器收到的消息中向用户显示图标和相关信息。包含一个用于切换模式 B 的按钮。

模式 B:当用户在模式 A 中点击按钮时,应触发此模式。它将隐藏来自模式 A 的信息,并显示更深入的信息,例如原始十六进制数据,以及来自消息的附加信息纯文本。包含切换回模式 A 的方法。

【问题讨论】:

    标签: java android android-activity server


    【解决方案1】:

    这是一个纯粹的前端,你可以在 Activity 中有一个片段占位符,并在几个片段之间来回切换,每个片段应该有不同的 XML UI 布局,因为你需要你的 GUI。

    另外,从ViewModel 打包您的布局视图,以免在片段之间转换时触发服务器。

    【讨论】:

    • 谢谢赞恩。我在我的应用程序中实现了这些片段,但我在使用视图模型时遇到了问题。我在视图模型中有我的服务器代码来运行和更新视图模型中的值。但是,当我尝试通过使用它们的活动范围在两个片段之间使用一个视图模型实例时,我遇到了麻烦。我正在尝试使用此链接中的方法:developer.android.com/topic/libraries/architecture/viewmodel
    • 当我尝试使用以下行访问片段中的视图模型时: ServerDataViewModel viewModel = new ViewModelProvider(getActivity()).get(ServerDataViewModel.class);它给了我以下错误:错误:没有为 ViewModelProvider(Activity) 构造函数找到合适的构造函数 ViewModelProvider.ViewModelProvider(ViewModelStoreOwner,Factory) 不适用(实际和形式参数列表的长度不同)构造函数 ViewModelProvider.ViewModelProvider(ViewModelStore,Factory)不适用(实际参数列表和形式参数列表的长度不同)
    • 表示ViewModelProvider构造函数的参数和你的不一样
    猜你喜欢
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 2012-11-04
    • 2015-04-15
    • 2019-02-22
    • 2014-11-13
    • 1970-01-01
    相关资源
    最近更新 更多