kotlin - 无法将文本设置为片段;适配器类的 Textview。错误我正在获取 lateinit 属性绑定尚未初始化
问题描述
片段类
class Load_Frag : Fragment(), clicklistener {
private lateinit var binding: FragmentLoadBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
//return inflater.inflate(R.layout.fragment_load_, container, false)
binding = FragmentLoadBinding.inflate(inflater,container,false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
loadfrag_recyclerview()
}
private fun loadfrag_recyclerview() {
val Loadfrag_Invoiceadapter =
Loadfrag_Invoiceadapter(this@Load_Frag)
binding.rvLoadFragInvoices.setLayoutManager(LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false))
binding.rvLoadFragInvoices.adapter = Loadfrag_Invoiceadapter
binding.rvLoadFragInvoices.setItemViewCacheSize(20)
}
override fun onitemclick(item: String) {
binding.tvLoadfragInvcount.text = item **//This is the error line**
}
}
适配器类
class Loadfrag_Invoiceadapter(loadFrag: Load_Frag) : RecyclerView.Adapter<Loadfrag_Invoicesholder>() {
var context: Context? = null
private var frag:Load_Frag
var count:Int =0
lateinit var listener: clicklistener
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Loadfrag_Invoicesholder {
val layoutInflater = LayoutInflater.from(parent.context)
val v: View = layoutInflater.inflate(R.layout.loadscreen_recyclerview_item, parent, false)
context = parent.getContext();
return Loadfrag_Invoicesholder(v)
}
override fun onBindViewHolder(holder: Loadfrag_Invoicesholder, position: Int) {
holder.crdvwLoadfragitem.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View?) {
if(!holder.checkboxLoadfrag.isChecked){
holder.checkboxLoadfrag.isChecked = true
count++
System.out.println("check: "+count+"/"+20)
listener.onitemclick(count.toString())
}else{
holder.checkboxLoadfrag.isChecked = false
count--
listener.onitemclick(count.toString())
System.out.println("uncheck: "+count+"/"+20)
}
}
})
}
init {
frag = Load_Frag()
listener=(frag)
}
override fun getItemCount(): Int {
return 20
}
override fun getItemId(position: Int): Long {
return super.getItemId(position)
}
override fun getItemViewType(position: Int): Int {
return super.getItemViewType(position)
}
}
界面
interface clicklistener {
fun onitemclick(item:String)
}
我在 Fragment 中有 Textview,当用户单击 Recyclerview 项目时,我想更新该 textview 的文本。该 textview 的文本应该得到更新。
解决方案
推荐阅读
- python - IMAPLIB 搜索命令返回错误值
- r - 通过在 R 中复制行和列来上采样/放大矩阵
- maven - 以下作业忽略了作为 GitLab 工件的 Maven 构建
- asp.net-mvc - Kentico 12 Web Farm 如何处理具有相同域名的开发和生产站点?
- python - 散景选择小部件以更新绘图
- java - 使用 Runnable 启动 Java 线程会为该进程打开一个新的小弹出窗口。如何避免弹出窗口?
- c# - MS Graph API:使用 PostAsync 复制 driveItem 不会返回结果
- bash - bash 脚本错误,直到 [1: command not found
- python - TypeError:“方法”对象不可迭代 - Python
- python - Django中的图像不再显示