Я хочу добавить изменяемый список в пакет, но, кажется, нет способа сделать это.
var bundle = Bundle()
bundle.put...????("LIST", fbModel.recipeArray)
Вы можете использовать putString
и так далее, но, похоже, putMutableList
не является опцией. Что делать?
UPDATE
Забыл упомянуть, что mutableList
recipeArray - это object
. Как это:
var recipeArray: MutableList<RecipeTemplate>
... где RecipeTemplate - это класс, который выглядит следующим образом:
class RecipeTemplate {
var recipeHeader: String? = null
var recipeText: String? = null
var recipeImage: String? = null
var recipeKey: String? = null
}
UPDATE
Решена проблема согласно ответу @EpicPandaForce:
gridView.setOnItemClickListener { parent, view, position, id ->
Log.d("TAGA", "CLICKETICLICK " + position)
Log.d("TAGA", "CLICKETICLICK " + fbModel.recipeArray[1].recipeHeader) //PASSES
val intent = Intent(classContext, Recipes::class.java)
var bundle = Bundle().apply {
putParcelableArrayList("LIST", ArrayList<Parcelable>(fbModel.recipeArray))
putInt("POSITION", position)
}
intent.putExtra("bundle", bundle)
startActivity(intent)
}
Но у меня все еще проблемы с получением его в другой деятельности. Код здесь от onCreate:
var passedIntent = intent.extras
var bundle: Bundle = passedIntent.getBundle("bundle")
var counter: Int = bundle.getInt("POSITION", 0)
var recipeArray: ArrayList<Parcelable> = bundle.getParcelableArrayList("LIST")
var recipeList: MutableList<RecipeTemplate> = recipeArray as MutableList<RecipeTemplate>
Log.d("TAGA", "PASSED " + counter) //PASSES
if(recipeArray != null) {
Log.d("TAGA", "HERE " + recipeArray[1].recipeHeader.toString()) //Null
Log.d("TAGA", "HERE " + recipeList[1].recipeHeader.toString()) //Null
Log.d("TAGA", "HERE " + recipeArray.size) //PASSES
}
Передано counter
и отображается правильный номер. recipeArray.size
передается и показывает правильный номер. Тем не менее, другие журналы recipeArray[1].recipeHeader.toString()
и recipeList[1].recipeHeader.toString()
имеют нулевое значение, даже если они содержат правильные значения перед помещением в пакет. Есть ли что-то, что мне нужно сделать, чтобы ... eum ... разбор списка? Или я что-то упустил?