Не проверено приведение: от java.io.Serializable к java.util.ArrayList<android.app.Fragment>'
Я получаю неконтролируемое предупреждение, и я не уверен, безопасно ли его подавить.
Я кладу 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' "
Хотя все работает нормально, правильно ли я могу сказать, что могу смело его подавить?
Спасибо!
1 ответ
Фрагменты не являются Сериализуемыми, то же самое для ArrayLists из Фрагментов. Так, putSerializable
в этом не получится, никогда. даже если бы они были сериализуемыми, вам все равно нужно было бы правильно использовать метод. что-то вроде:
ArrayList<Fragment> fragmentArrayList = new ArrayList<Fragment>();
fragmentList.add(foo);
...
myBundle.putSerializable("fragmentList", fragmentArrayList); //not ArrayList<Fragment>
Попробуй,
- иметь
MySecondActivity
создать эти фрагменты, которые вы хотели передать ему вonCreate
- Поместите классы данных, которые вы хотите передать
MySecondActivity
в связке для этого намерения, но реализоватьParcelable
вместо этого, поскольку это быстрее / лучше, чем Serializable
Для второго шага, вот учебник о реализации ваших классов данных Parcelable
HTHS!!!