问题标签 [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.

0 投票
1 回答
444 浏览

java - 使用静态变量在包内的活动之间共享数据

所以基本上,我无法摆脱这似乎是个坏主意的事实,但我无法确定原因。

我进行了Volley 调用Activity A并创建了一个模型列表,其中包含一些简单的数据(字符串和原语)。举一个非常简单的例子,let表示一篇新闻文章(因此模型列表是新闻文章列表),其中包含新闻文章的标题和正文。包含显示文章标题的列表。当您单击列表中的某个项目时,将调用 并且文章的标题显示在顶部,文章的正文显示在下面。只能在 A 检索到之后才能从任何地方调用Activity BPackage 1Activity AModel XModel XActivity AActivity BActivity BActivity AModel X现在假设我们有大量这些模型,它们都包含大量简单类型,并且您不确定模型中Activity B需要什么数据,您只知道它需要Model XActivity 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 的响应代码),但我没有得到。对此的任何意见也表示赞赏。再一次,我意识到使用静态并不完全理想,但我真的想弄清楚为什么在这种情况下不应该使用它们,或者这实际上是它们的用途之一。

0 投票
2 回答
890 浏览

android - 将数据从一个片段传输到另一个片段

目前正在尝试使用捆绑包将信息从我的 IncomeFragment 和 ExpenseFragment 传输到 HomeFragment,但我不确定如何去做。我试过实现他提供的 doubleA 的代码。

这是我的 MainActivity 中的 onAcceptClicked 方法,它从相关片段中获取总收入/支出的值并将其传输到 HomeFragment:

我的 IncomeFragment 中有一个接口,用于与 MainActivity 通信,因此我可以使用 onAcceptClicked 方法来传输我的总数。我计划用我的 ExpenseFragment 基本上做同样的事情。下面的代码是来自我的 IncomeFragment 的片段:

不幸的是,我在这行代码中遇到了错误

这是错误

我不知道为什么它说有一个空对象引用和/或我如何解决这个错误。

我猜想在我的 HomeFragment 中显示我的总数可能会出错,因为我没有在 MainActivity 或 IncomeFragment / ExpenseFragment 的代码中的任何地方调用下面的方法。我没有使用它的原因是因为我不确定如何获取它,以便在启动应用程序时首先打开 HomeFragment。

我什至不介意从头开始,只要我可以转移总计并从 IncomeFragment > HomeFragment 和 ExpenseFragment > HomeFragment 显示它们

0 投票
4 回答
5216 浏览

android - 如何发送 ArrayList在android中从一个片段到另一个片段

我想将 NameValuePair 的 ArrayList 从一个片段传递到另一个片段,这是我的代码

我正在尝试以这种方式获取数据

但它给出了错误绑定不匹配:Bundle 类型的通用方法 getParcelableArrayList(String) 不适用于参数 (String)。推断类型 NameValuePair 不是有界参数的有效替代品

谁能帮我解决这个问题或如何正确地做到这一点?

0 投票
1 回答
295 浏览

android - 如果用户导航到另一个片段,则保存来自一个片段和对话框的信息

我有一个屏幕,用户按下一个按钮来调出一个DialogFragment带有EditText. 他们输入信息,然后按Ok。如果他们再次按下按钮,我已经做到了,因此EditText将显示他们刚刚输入的信息,并且一切正常。

但是,如果他们输入信息,按Ok,然后使用选项菜单去查看另一个屏幕/ ,一旦他们再次按该按钮fragment,信息将不会显示在其中。EditText

即使用户暂时离开该屏幕,我如何保存信息?我认为它需要newInstance片段类中的方法,然后调用托管活动newInstance而不是构造函数。但我不确定如何实现它。任何帮助表示赞赏。谢谢!

SingleFragmentActivity

托管活动的相关代码,AdviceActivity:

托管片段 AdviceFragment 中的相关代码:

来自 DialogFragment InputTextFragment 的相关代码:

XML 活动片段:

0 投票
3 回答
3092 浏览

android - 如何在 Bundle 中发送 RealmObject?

如何通过 Intents Bundle 传递 RealmObject?有没有办法将 RealmObject 写入包裹?出于已知的原因,我不想使用 Serializable 。

0 投票
1 回答
324 浏览

java - Android 平台 Bundle 类遇到内部数组越界异常

我在 Android 应用程序中遇到数组越界错误,我不知道如何解决这个问题。似乎所有相关检查都已完成。

我的代码如下:

我收到以下错误:

任何帮助将不胜感激。

0 投票
1 回答
6244 浏览

android - Android 如何从包中获取/检索数据?

我正在使用这个从一个班级发送数据

我正在获取捆绑包中其他类的数据,但我不知道如何从捆绑包中检索它,我附上了屏幕截图:

在此处输入图像描述

请指导我如何获取这些以红星结尾的数据;我想将这两个变量 wakelockid=3, alarmMgr_id=9 存储为整数。

我已经尝试过了,但它对我不起作用,所以请查看调试模式截图;alarmManager_id 每次都返回 null。

将其视为发送数据的 A 类

这作为 B 类,现在接收数据如果您转到屏幕截图,您可以看到我正在获取捆绑包中的数据,但我不知道如何提取它,您还可以在代码中看到我尝试过的方法提取值,但全部返回 null。

0 投票
0 回答
37 浏览

android - Android:将数据从片段传递到其他片段时面临问题

这可能是一个非常简单的问题。但是我很难找到我做过的问题。

我正在将数据从一个片段传递到另一个片段。

这是我为传递数据而编写的代码。

接收代码。

我在 project_id 中得到空值。请帮我解决这个问题。

0 投票
2 回答
478 浏览

android - savedInstanceState 内存影响

我正在与其他一些开发人员一起开发一个 android 项目,并且引发了一个错误,即垃圾收集中没有保留实例状态:

实际的错误报告:

该应用程序有一个带有一堆片段的活动。如果在开发人员选项中选中“不保留活动”并且用户单击任何更改可见片段的按钮,然后导航离开应用程序然后返回,它会将应用程序重新启动到其原始状态而不是最后一个状态.

该项目的另一位开发人员提出了以下担忧:

“实例的保存会导致应用程序的内存大小膨胀。由于可绘制对象的数量,应用程序的内存大小已经太高了。

没关系,如果应用程序在用户一段时间未使用后重新启动。”

我的理解是 savedInstance Bundle 实际上被写入物理内存,这不正确吗?上面的引用是一个有效的问题吗?

0 投票
1 回答
126 浏览

android - 如何防止 Meteor 安装自己的 .android

Meteor 在 ~/.meteor/android_bundle/.android 中安装了自己的 Android 设备包。但实际上在 ~/.android 中已经有一个副本。

因为它需要超过 1GB 的空间,所以有两个不同的副本是否有意义,如果没有,你能告诉 Meteor 取而代之的是 ~/.android 文件夹文件吗?