问题标签 [android-bundle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 使用静态变量在包内的活动之间共享数据
所以基本上,我无法摆脱这似乎是个坏主意的事实,但我无法确定原因。
我进行了Volley 调用Activity A
并创建了一个模型列表,其中包含一些简单的数据(字符串和原语)。举一个非常简单的例子,let表示一篇新闻文章(因此模型列表是新闻文章列表),其中包含新闻文章的标题和正文。包含显示文章标题的列表。当您单击列表中的某个项目时,将调用 并且文章的标题显示在顶部,文章的正文显示在下面。只能在 A 检索到之后才能从任何地方调用Activity B
Package 1
Activity A
Model X
Model X
Activity A
Activity B
Activity B
Activity A
Model X
现在假设我们有大量这些模型,它们都包含大量简单类型,并且您不确定模型中Activity B
需要什么数据,您只知道它需要Model X
在Activity A
.
看起来,“正确”的步骤是让模型实现 Parcelable 并将模型打包传递给活动。问题是我有很多模型和大量数据,如果我能节省时间,那就太好了。我试图实现某种通用的 parceler,结果变得一团糟。所以这就是我的想法:
无法
Activity A
将在 onItemClick() 中选择的模型保存为受保护的静态变量,Activity B
无需在打包的包中传递即可使用,因为一旦制作了模型,它将是模型的唯一实例,并且模型不会以任何方式改变模型的状态不会被静态调用破坏?
像这样的东西
活动一
活动 B
The Model class X will never be used outside of Activity A and Activity B, and every Activity that needs to use a Model of the same type is placed in the same Package
. 我有许多类做类似的事情(新闻文章、热门问题和答案、法律细节,大部分只是其他通用字符串数据)。我可以打包所有不成问题的东西,即使它看起来有缺陷,我似乎也无法指出这有什么问题。没有任何数据需要任何安全性,也没有任何模型大到足以导致静态堆内存问题。
编辑
我的情况并非完全独特,但有点不常见。我可以在应用程序重新启动时取消我的数据。这意味着(据我所知)if I store the Model statically of the protected type in Activity A, there is no way that the Model could be null in Activity B
静态变量仍然在应用程序中从仍然暂停Activity A
或应用程序重新启动,并且用户将不得不Activity A
重新构建我们的 volleyModel
以便也Activity B
可以使用它。(此处需要逻辑检查中的可能错误)
我确实意识到 volley 有一个缓存,但我相当肯定它需要正确的缓存标头(提供类似 304 的响应代码),但我没有得到。对此的任何意见也表示赞赏。再一次,我意识到使用静态并不完全理想,但我真的想弄清楚为什么在这种情况下不应该使用它们,或者这实际上是它们的用途之一。
android - 将数据从一个片段传输到另一个片段
目前正在尝试使用捆绑包将信息从我的 IncomeFragment 和 ExpenseFragment 传输到 HomeFragment,但我不确定如何去做。我试过实现他提供的 doubleA 的代码。
这是我的 MainActivity 中的 onAcceptClicked 方法,它从相关片段中获取总收入/支出的值并将其传输到 HomeFragment:
我的 IncomeFragment 中有一个接口,用于与 MainActivity 通信,因此我可以使用 onAcceptClicked 方法来传输我的总数。我计划用我的 ExpenseFragment 基本上做同样的事情。下面的代码是来自我的 IncomeFragment 的片段:
不幸的是,我在这行代码中遇到了错误
这是错误
我不知道为什么它说有一个空对象引用和/或我如何解决这个错误。
我猜想在我的 HomeFragment 中显示我的总数可能会出错,因为我没有在 MainActivity 或 IncomeFragment / ExpenseFragment 的代码中的任何地方调用下面的方法。我没有使用它的原因是因为我不确定如何获取它,以便在启动应用程序时首先打开 HomeFragment。
我什至不介意从头开始,只要我可以转移总计并从 IncomeFragment > HomeFragment 和 ExpenseFragment > HomeFragment 显示它们
android - 如何发送 ArrayList在android中从一个片段到另一个片段
我想将 NameValuePair 的 ArrayList 从一个片段传递到另一个片段,这是我的代码
我正在尝试以这种方式获取数据
但它给出了错误绑定不匹配:Bundle 类型的通用方法 getParcelableArrayList(String) 不适用于参数 (String)。推断类型 NameValuePair 不是有界参数的有效替代品
谁能帮我解决这个问题或如何正确地做到这一点?
android - 如果用户导航到另一个片段,则保存来自一个片段和对话框的信息
我有一个屏幕,用户按下一个按钮来调出一个DialogFragment
带有EditText
. 他们输入信息,然后按Ok
。如果他们再次按下按钮,我已经做到了,因此EditText
将显示他们刚刚输入的信息,并且一切正常。
但是,如果他们输入信息,按Ok
,然后使用选项菜单去查看另一个屏幕/ ,一旦他们再次按该按钮fragment
,信息将不会显示在其中。EditText
即使用户暂时离开该屏幕,我如何保存信息?我认为它需要newInstance
片段类中的方法,然后调用托管活动newInstance
而不是构造函数。但我不确定如何实现它。任何帮助表示赞赏。谢谢!
SingleFragmentActivity
:
托管活动的相关代码,AdviceActivity:
托管片段 AdviceFragment 中的相关代码:
来自 DialogFragment InputTextFragment 的相关代码:
XML 活动片段:
android - 如何在 Bundle 中发送 RealmObject?
如何通过 Intents Bundle 传递 RealmObject?有没有办法将 RealmObject 写入包裹?出于已知的原因,我不想使用 Serializable 。
java - Android 平台 Bundle 类遇到内部数组越界异常
我在 Android 应用程序中遇到数组越界错误,我不知道如何解决这个问题。似乎所有相关检查都已完成。
我的代码如下:
我收到以下错误:
任何帮助将不胜感激。
android - Android 如何从包中获取/检索数据?
我正在使用这个从一个班级发送数据
我正在获取捆绑包中其他类的数据,但我不知道如何从捆绑包中检索它,我附上了屏幕截图:
请指导我如何获取这些以红星结尾的数据;我想将这两个变量 wakelockid=3, alarmMgr_id=9 存储为整数。
我已经尝试过了,但它对我不起作用,所以请查看调试模式截图;alarmManager_id 每次都返回 null。
将其视为发送数据的 A 类
这作为 B 类,现在接收数据如果您转到屏幕截图,您可以看到我正在获取捆绑包中的数据,但我不知道如何提取它,您还可以在代码中看到我尝试过的方法提取值,但全部返回 null。
android - Android:将数据从片段传递到其他片段时面临问题
这可能是一个非常简单的问题。但是我很难找到我做过的问题。
我正在将数据从一个片段传递到另一个片段。
这是我为传递数据而编写的代码。
接收代码。
我在 project_id 中得到空值。请帮我解决这个问题。
android - savedInstanceState 内存影响
我正在与其他一些开发人员一起开发一个 android 项目,并且引发了一个错误,即垃圾收集中没有保留实例状态:
实际的错误报告:
该应用程序有一个带有一堆片段的活动。如果在开发人员选项中选中“不保留活动”并且用户单击任何更改可见片段的按钮,然后导航离开应用程序然后返回,它会将应用程序重新启动到其原始状态而不是最后一个状态.
该项目的另一位开发人员提出了以下担忧:
“实例的保存会导致应用程序的内存大小膨胀。由于可绘制对象的数量,应用程序的内存大小已经太高了。
没关系,如果应用程序在用户一段时间未使用后重新启动。”
我的理解是 savedInstance Bundle 实际上被写入物理内存,这不正确吗?上面的引用是一个有效的问题吗?
android - 如何防止 Meteor 安装自己的 .android
Meteor 在 ~/.meteor/android_bundle/.android 中安装了自己的 Android 设备包。但实际上在 ~/.android 中已经有一个副本。
因为它需要超过 1GB 的空间,所以有两个不同的副本是否有意义,如果没有,你能告诉 Meteor 取而代之的是 ~/.android 文件夹文件吗?