【发布时间】:2021-09-23 12:44:02
【问题描述】:
我有一个 fragmentStateAdapter,它保存着我的一些 卡片,以便在它们之间滑动:
public class ScreenSlidePagerAdapter(activity: AppCompatActivity, var items: ArrayList<Helpers.Card>, private val saveToDb: Boolean) : FragmentStateAdapter(activity) {
override fun getItemCount(): Int = items.count()
var fragment:CardItemFragment?=null
override fun createFragment(position: Int): Fragment{
fragment =CardItemFragment(position, saveToDb ,this) //.newInstance( items[position ].getSaveString())
return fragment as CardItemFragment
}}
CardItemFragement 是:
class CardItemFragment(val position:Int, val saveToDb: Boolean, val isCardMine: Boolean,val adapter: ScreenSlidePagerAdapter) : Fragment() {
lateinit var cardView1: ConstraintLayout
lateinit var crdNameTB1: TextView
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val v = inflater.inflate(R.layout.card_item, container, false)
cardView1 = v.findViewById(R.id.cardView1)
crdNameTB1= v.findViewById(R.id.crdNameTB1)
return v
}
然后我可以像这样更新 fragementStateAdapter 中的 Card:
fun updateCard(): Bitmap? {
crdNameTB1.text = .....
}
这很好,我可以在我的卡片之间滑动,但是当我通过 底页 更改我的 卡片 的“名称”属性的值以及当我关闭时BottomSheet 我用这段代码刷新了fragmentSatateAdapter:
MainActivity.galleryPagerAdapter?.fragment ?.updateCard()
我将 MyActivity 设置为 companion object 以便随时随地访问它。
执行此代码时,我得到 fragment 不是 null 对象,但 updateCard 给了我 null 对象 1有什么问题,我该如何解决这个问题并更新显示的卡片?
【问题讨论】:
标签: android fragmentstateadapter