如何将List放入intent中

8 android

我的一个活动中有一个List,需要将其传递给下一个活动.

private List<Item> selectedData;  
Run Code Online (Sandbox Code Playgroud)

我尝试通过以下方式实现此目的:

intent.putExtra("selectedData", selectedData);  
Run Code Online (Sandbox Code Playgroud)

但它没有用.可以做些什么?

hss*_*son 12

就像在评论中提到的howettl一样,如果你使列表中的对象可以序列化,那么它变得非常容易.然后你可以将它放在一个Bundle中,然后你可以把它放在意图中.这是一个例子:

class ExampleClass implements Serializable {
    public String toString() {
        return "I am a class";
    }
}

... */ Where you wanna create the activity /*

ExampleClass e = new ExampleClass();
ArrayList<ExampleClass> l = new ArrayList<>();
l.add(e);
Intent i = new Intent();
Bundle b = new Bundle();
b.putSerializeable(l);
i.putExtra("LIST", b);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

  • 实际上,它必须是`b.putSerialzeable("key",l)`并且应该注意到要访问其他活动中的列表,你必须执行`List <ExampleClass> listExtra =(ArrayList <ExampleClass>)( intent.getBundleExtra( "LIST").getSerializable( "钥匙"))`.不过,它比为ExampleClass实现Parceable要容易得多. (8认同)

Oct*_*ean 11

您必须首先将实例化为List具体类型.List本身就是一个界面.

如果在对象中实现Parcelable接口,则可以使用该putParcelableArrayListExtra()方法将其添加到对象中Intent.