对不起我的问题,但我对Android,甚至是Java都很陌生。
我的appwidget中有listview布局。列表视图项在widgetservice.java中处理,其中我声明了一个数组来存储listview项。
每个listview项都有一个配置按钮。当你点击它们时,一个新的活动开始了,我真的需要访问这个活动中的listview项目(所以实际上是前面提到的数组的元素)。
我做了一些研究如何做到这一点,我来到了Parcelalbe课程,所以我可以附上一个包裹到我的意图。这很好,但是包裹似乎只是复制品,我需要原始的数组元素(所以我可以在活动中更改它们等)。
我希望你能理解我的问题,并能够帮助我。 欢呼声。
答案 0 :(得分:0)
Parcelable是一种可行的方法,但除非你只处理基本的,单维的,仅字符串列表/数组,否则我不会走这条路线,因为它可以很快变得复杂并且不是非常灵活。
首选方法是 using Fragments 。例如在这种情况下ListFragment
。
您的ListFragment
包含显示ListView
所需的所有零碎内容。它应该生成(或能够访问)它自己的项目集合,并知道如何显示和控制它们。将所有内容放入Fragment
的好处是,您可以轻松地在任何Activity
或layout.xml
中重复使用它,并再次使用相同的功能,而无需重复所有这些功能代码。
如果您需要ListFragment
是动态的,而不是只显示相同的列表,您可以通过newinstance(...)
方法传递一些参数。该方法本身会将您想要的所有信息和参数包装到Bundle
对象中,您将用它来配置或填充Fragment
。 Here's how to go about that
这确保了如果您需要重新创建Fragment
(屏幕旋转,活动更改,应用程序焦点等等),它将能够再次使用相同的参数正确地重新创建自己而无需您进行调解。
现在看起来似乎更多的工作是试图了解Fragments
的概念和使用,但从长远来看,它将节省您的时间,让您头疼,并让您编写更易于维护和吸引人的代码