kotlin 将Firestore数据通过RecyclerView传递到活动

olmpazwi  于 2022-11-16  发布在  Kotlin
关注(0)|答案(1)|浏览(101)

当我点击recyclerview上的一个位置时,我试图将通过Firestore获得的填充数据传递到另一个Activity上。但是,当我试图点击recyclerview项时,我得到了一个错误。是不是因为我正在传递intent.getParcelableExtra()!!,而我需要传递其他东西?谢谢!

这是错误:

Caused by: java.lang.NullPointerException
at com.zwdalpha.skedaddle.Activities.Services.CategoryServiceActivity.onCreate(CategoryServiceActivity.kt:32)

常用类别适配器.kt

class PopularCategoriesAdapter(val category: ArrayList<Category>) :
    RecyclerView.Adapter<PopularCategoriesAdapter.ViewHolder>() {

    var selectedCategory = Category("", "")

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.bindCategory(category[position])

        holder.itemView.setOnClickListener { v ->
            selectedCategory.category = category[position].category
            val intent = Intent(holder.itemView.context, CategoryServiceActivity::class.java)
            intent.putExtra("category", category[position].category)
            holder.itemView.context.startActivity(intent)
        }
    }
}

类别服务活动.kt

class CategoryServiceActivity : AppCompatActivity() {

    lateinit var category: Category

    @SuppressLint("NotifyDataSetChanged")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_category_service)

// Line 32 - category = intent.getParcelableExtra("category")!!
    }
}

我尝试将intent.getParcelableExtra("category")!!切换为intent.extras!!.get("category") as Category,但仍然出现错误。

k2arahey

k2arahey1#

因为您没有将“category”作为Category()的对象发送。
相反,你发送的是它的类别字段,我假设它是字符串。

//intent.putExtra("category", category[position].category)

intent.putExtra("category", category[position]) // use this

相关问题