我对Android编程比较陌生,我很难在活动之间发送数据。
我目前的应用程序结构是一个指向选项卡主机的主页,其中包含活动,而某些活动有自己的选项卡主机和自己的活动,然后有一些屏幕是根据用户输入显示和未显示。
现在我遇到的主要问题是从最低级别的活动向第一级活动之一发送信息。
目前我有一个包含标签主机的大型活动,管理其中包含的较低级别布局的输入。
这是最佳做法,还是应该使用其他方法?
提前致谢。
答案 0 :(得分:0)
如果您发现自己需要跨活动维护大量相同的信息,您还可以使用Application
类来存储全局状态变量。
http://developer.android.com/reference/android/app/Application.html
需要维护全局应用程序状态的基类。您可以通过在AndroidManifest.xml的标记中指定其名称来提供自己的实现,这将导致在创建应用程序/包的过程时为您实例化该类。
答案 1 :(得分:0)
您可以使用putExtra()在启动它之前在被调用活动的意图内传递简单参数(而不是对象),并在getExtra()的被调用活动中使用它。
如果您想要的是向活动发送信息,那么您可以创建一个包含与您的需求相对应的static
字段的类,然后在您的任何活动中访问和修改它们的值。至于在活动之间切换时自动更改值,您可以覆盖活动的默认功能来完成工作。
您可以找到活动here的默认方法。
基本上,您可能需要覆盖onPause()
和onResume()
函数
答案 2 :(得分:0)
要在您使用Intents的活动之间传递数据。您可以使用putExtra()向Intent添加数据,如7bluephoenix所说。要获取数据,您必须在接收活动中配置广播接收器:
intent是要执行的操作的抽象描述。它可以与startActivity一起用于启动Activity,broadcastIntent用于将其发送到任何感兴趣的BroadcastReceiver组件,startService(Intent)或bindService(Intent,ServiceConnection,int)用于与后台服务进行通信。
Intent提供了一种工具,用于在不同应用程序中的代码之间执行延迟运行时绑定。它最重要的用途是发起活动,它可以被认为是活动之间的粘合剂。它基本上是一个被动数据结构,包含要执行的动作的抽象描述。
http://developer.android.com/reference/android/content/Intent.html
答案 3 :(得分:0)
我的应用程序的结构方式,我不得不使用应用程序上下文来存储值,就像Singleton方法一样。