1

我收到未经检查的演员表警告,我不确定抑制它是否安全。

我在ArrayList<Fragment>里面放一个Bundle. 然后将此捆绑包放入我的意图中,如下所示:

Intent mIntent = new Intent(getBaseContext(),MySecondActivity.class);
Bundle myBundle = new Bundle();
myBundle.putSerializable("fragmentList",ArrayList<Fragment>);
mIntent.putExtras(myBundle);
startActivity(mIntent);

然后在我的新活动(MySecondActivity)中,我使用以下代码检索这些数据:

(ArrayList<Fragment>) getIntent().getSerializableExtra("fragmentList")

我的编译器给了我以下警告:

“未经检查的演员:'java.io.Serializable'到'java.util.ArrayList'”

一切都很好,我可以说我可以安全地压制它吗?

谢谢!

4

1 回答 1

1

片段不可序列化,对于片段的 ArrayLists 也是如此。所以,putSerializable这永远行不通。即使它们是可序列化的,您仍然需要正确使用该方法。就像是:

ArrayList<Fragment> fragmentArrayList = new ArrayList<Fragment>();
fragmentList.add(foo);
...
myBundle.putSerializable("fragmentList", fragmentArrayList);  //not ArrayList<Fragment>

而是尝试,

  1. 已经MySecondActivity创建了您想要传递给它的这些片段onCreate
  2. 将要传递给MySecondActivity该意图的数据类放在包中,但要实现,Parcelable因为它比 Serializable 更快/更好

对于第二步, 这里有一个关于让你的数据类实现的教程Parcelable

HTH !!!

于 2014-07-25T19:31:53.127 回答