【问题标题】:How to start Activity with custom parameters如何使用自定义参数启动 Activity
【发布时间】:2013-07-18 10:55:51
【问题描述】:

我需要使用参数启动一个 Activity。我知道我可以用 Intents 和 Bundles 做到这一点,但据我所知,它只能用 String、boolean 等......

我必须使用自定义参数,例如用户自定义的类。

例如,我在主活动中获得了PLC类,其中包含许多变量和方法,我需要在其他活动中使用它。

我知道“公共静态”方法,但我不喜欢它,而且我确信我能找到其他适合我需要的方法。

我希望你们能帮助我 再见

【问题讨论】:

  • 我同意你对静态方法的看法。您可能要考虑改用片段。我相信,虽然我不是专业人士,但这样可以更轻松地处理此类问题。
  • @Squonk 这是代表​​ PLC 的我的类,它包含输入、输出等。
  • @Arty :你说它在你的主要活动中......为什么它在那里?为什么它不在自己的类文件中?
  • @Squonk 我的 PLC 类在它自己的类文件中,但我在主要活动中使用它。 PLC 类包含 Socket,我在主要活动中连接此套接字

标签: android android-activity parameters


【解决方案1】:

使您的自定义类可序列化,然后像这样将其放入捆绑包中

bundle.putSerializable(key, value);

【讨论】:

  • 这会给 OP 一份副本;没有?
  • @Onur A. 我有点同意 BobbyDigital 的观点,我不想要副本,但要原件
  • @Arty:根据您的设计等,正如我所说,您可能会考虑查看片段。 Fragments 可以通过getActivity() 直接访问活动数据。或者我是这么理解的。
  • @Arty 你不能只传递对你的类实例的引用
  • 我已经使用 Fragments 来显示 PLC 值(如灯光、温度等,实际上它是一个用于家庭自动化的应用程序),但我不希望这个活动像其他有权限的活动一样显示滚动
【解决方案2】:

或者你可以让你的类实现parcelable接口,并将它放在你从源活动发送到目标活动的包中..

【讨论】:

    【解决方案3】:

    在我看来,您可以制作具有 getter/setter 方法的 bean 类...您可以在那里设置值,并在任何其他活动中检索这些值。使用它的类。

    例如

    public class Constants{
    
        public static Bean userBeen=new Bean();
    
    }
    

    主要活动

    Constants.userBeen.setValue("anything");
    

    在其他Activity中,你可以使用userBeenobj来获取值;

    其他活动

       String s=Constants.userBeen.getValue();
    

    希望这对您有所帮助。我主要用这个!

    【讨论】:

    • RowItem 没有退出,我必须自己写吗?
    • :) 它是您的 Bean 类,因此您可以随意命名。制作自己的课程。
    • New--> Class ---> 根据需要命名您的类,定义变量名..根据您的要求.. 右键单击​​--> source---> 生成 getter/setter 方法--> 好的 --> 完成。
    • 你能告诉我更多关于 Bean 类的信息吗,android 对我来说有点新
    • 我已经给你一个例子你如何使用你的 Class 类型是 bean
    猜你喜欢
    • 2015-07-10
    • 2011-04-24
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多