[英]How do I pass data between list activities and download activities in Android
[英]How do I pass List <PackageInfo> between activities in Android?
我试图在我的应用程序中的多个活动之间传递PackageInfo的列表。 是否可以使用Intent来做到这一点?
如果您确实希望基于包执行某些操作,则可以再次在第二个活动中获取包信息,请将包名称数组(com.google。)从一个活动传递到另一个活动。
您可以在意向中添加任何内容,而对象仅必须是可包裹的(似乎很复杂,但根本不是!)。
您在这里有示例: http : //developer.android.com/reference/android/os/Parcelable.html
也许一个具体的列表是可打包的(例如ArrayList),我不记得了。
我在想的另一种方法可能是使用共享首选项,我知道您可以在其中放置一个集合,如果您不想在任何地方都可以访问列表,这可能是实现它的一种方法。
希望我帮忙!
在这种情况下,您可以在每个活动中查询PackageInfo列表。 但是在通常情况下,当我不得不通过多个活动共享不可分割的对象时,我通常会为此创建一个单例类。 请注意,这会占用内存,因此请确保在不再需要单例时将其丢弃。
例如,对于PackageInfos,它看起来像这样:
public class SharedPackageInfos{
private SharedPackageInfos(){}
private static SharedPackageInfos _current;
public static SharedPackageInfos getCurrent()
{
if(_current == null)
{
_current = new SharedPackageInfos();
}
return _current;
}
private List<PackageInfo> packageInfos;
public List<PackageInfo> getPackageInfos()
{
return _packageInfos;
}
public void setPackageInfos(List<PackageInfo> packageInfos)
{
this.packageInfos = packageInfos;
}
public static void dispose()
{
_current = null;
}
}
并从活动电话
SharedPackageInfos.getCurrent().setPackageInfos(myList); //save a list
List<PackageInfo> packageInfos = SharedPackageInfos.getCurrent().getPackageInfos(); //retreive a list
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.