我收到了一个未经检查的投射警告,我不确定是否可以安全地禁止它。
我在ArrayList<Fragment>
内加Bundle
。然后将这个Bundle放入我的Intent中,如下所示:
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")
我的编译器给了我以下警告:
&#34;未经检查的演员:&#39; java.io.Serializable&#39;至 &#39;的java.util.ArrayList&#39; &#34;
一切都运转良好,我说得对,我可以安全地压制它吗?
谢谢!
答案 0 :(得分:1)
片段不可序列化,对于片段的ArrayLists也是如此。因此,putSerializable
中的ArrayList<Fragment> fragmentArrayList = new ArrayList<Fragment>();
fragmentList.add(foo);
...
myBundle.putSerializable("fragmentList", fragmentArrayList); //not ArrayList<Fragment>
永远不会起作用。即使它们是可序列化的,您仍然需要正确使用该方法。类似的东西:
MySecondActivity
相反尝试,
onCreate
在MySecondActivity
Parcelable
,因为它比Serializable更快/更好对于第二步,here is a tutorial关于使您的数据类实现Parcelable
HTHS !!!