当前位置: 首页 > 知识库问答 >
问题:

如何在Alertdialog中设置上下文。适配器中的生成器()?[重复]

司马俊晖
2023-03-14

我想在适配器中为片段中的recyclerview实现alertdialog。但是上下文有一个错误,如何在适配器中设置上下文?

 override fun onBindViewHolder(holder: MyViewHolder, position: Int) {

        val currentitem = obatList[position]

        holder.namaObat.text = currentitem.namaObat
        holder.harga.text = currentitem.harga
        holder.keterangan.text = currentitem.keterangan
        holder.edit.setOnClickListener {
           showUpdateDialog()
        }

    }

    private fun showUpdateDialog() {
        val builder = AlertDialog.Builder()
    }
    
        override fun getItemCount(): Int {
    
            return obatList.size
        }
    
    
        class MyViewHolder(itemView : View) : RecyclerView.ViewHolder(itemView){
    
            val namaObat : TextView = itemView.findViewById(R.id.tvNamaObat)
            val harga : TextView = itemView.findViewById(R.id.tvHarga)
            val keterangan : TextView = itemView.findViewById(R.id.tvKeterangan)
            val edit : ImageButton = itemView.findViewById(R.id.ibEdit)
        }
    }

共有2个答案

宫坚
2023-03-14

你所要做的就是作为一个类创建者获得“上下文”。

碎片kt

YourAdapter(requireContext())

你的适配器。kt

YourAdapter(context: Context){

    showUpdateDialog(){
        AlertDialog.Builder(context) 
    }

}
李星波
2023-03-14

首先让您的函数采用一个可以传递给构建器的上下文参数:

private fun showUpdateDialog(context: Context) {
    val builder = AlertDialog.Builder(context)
        //...
}

然后,您可以从绑定根或传递给单击侦听器的视图中获取要传递的上下文:

    holder.edit.setOnClickListener { view ->
       showUpdateDialog(view.context)
    }

    holder.edit.setOnClickListener {
       showUpdateDialog(it.context)
    }
 类似资料:
  • 我试图使用picasso库将url加载到imageView,但无法获得来正确使用picasso库。

  • 问题内容: 我有一个使用elasticsearch-jetty项目的嵌入式Elasticsearch,并且我需要设置为比默认值更好地使用标记器。我想使用关键字标记器。 我一辈子都想不通如何通过配置文件来做到这一点。谁能指出我通过配置文件执行此操作的方法? 顺便说一句,是否可以通过对索引执行POST来在启动和运行时调整索引?我真的很想了解如何使用它,谢谢。 编辑/更新:我在将curl -XPUT或-

  • 我有两个片段:(1)图书馆片段,(2)书片段 图书馆碎片通过RecyclerView显示所有可用的书籍。用户可以在每个RecyclerView项目上设置标签,这将把LiveData设置为相应的图书。同时,书籍片段将被打开,并显示该书的内容。 我在ViewHolder类中设置了一个onClickListener,它位于图书馆片段的RecyclerView. Adapter中。因此,当单击一个项目时,

  • 问题内容: 我正在尝试使用Picasso库来将URL加载到imageView,但是我无法正确使用Picasso库。 问题答案: 您在这里有一些选择: 作为参数传递给FeedAdapter并将其保留为类字段 在需要时使用依赖项注入进行注入。我强烈建议您阅读有关内容。有一个很棒的工具-Dagger by Square 从任何对象获取它。在您的情况下,这可能适合您: 作为一个。

  • 问题内容: 我需要知道如何让NetBeans使用快捷方式生成getter和setter。 问题答案: 将光标放在班级内部,然后按+ 并从上下文菜单中选择。

  • 我是kotlin android的新手。我已经创建了回收站视图的适配器。但是我不能为每个回收站视图项目执行单击事件。我需要参考代码的解释。请帮我做这件事。提前谢谢。这是我的代码供您参考。