Kotlin:如何在跨布局点击事件中修改弹窗TextView内容
修改弹窗TextView文本的方法
你只需要在弹窗布局inflated完成后,通过view.findViewById找到popupItemDesc对应的TextView,再调用setText()方法就能修改它的内容。
修改后的完整点击事件代码如下:
hpPotImg.setOnClickListener(){ val window = PopupWindow(this) val view = layoutInflater.inflate(R.layout.item_popup_tooltip, null) // 找到目标TextView并修改文本 val itemDescTv = view.findViewById<TextView>(R.id.popupItemDesc) itemDescTv.text = "你的新描述内容" // 替换成你需要的文本,也可以用getString(R.string.your_res_id)调用字符串资源 window.contentView = view val popupLayout = view.findViewById<ConstraintLayout>(R.id.popupHpPot) popupLayout.setOnClickListener(){window.dismiss()} window.showAsDropDown(hpPotImg) }
关键注意点:
- 必须基于inflated后的弹窗布局
view来调用findViewById,因为这个TextView属于弹窗布局的内部控件,不是当前页面的根布局控件。 - 如果需要适配多语言,建议使用字符串资源替代硬编码文本,避免后续维护麻烦。
内容的提问来源于stack exchange,提问作者Xyrusson
相关产品推荐
相关产品推荐

