Не проверено приведение: от 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>

Попробуй,

  1. иметь MySecondActivity создать эти фрагменты, которые вы хотели передать ему в onCreate
  2. Поместите классы данных, которые вы хотите передать MySecondActivity в связке для этого намерения, но реализовать Parcelable вместо этого, поскольку это быстрее / лучше, чем Serializable

Для второго шага, вот учебник о реализации ваших классов данных Parcelable

HTHS!!!

Другие вопросы по тегам