вот мой слайдер pageradapter
class SliderPageAdapter(var ctx: Context, private val images: List<Items>)
: PagerAdapter() {
private lateinit var itemRef: DatabaseReference
var img: Array<String>? = null
override fun instantiateItem(container: ViewGroup, position: Int): Any {
val image = images[position]
val inflater : LayoutInflater = ctx.
getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
val slideLayout: View = inflater.inflate(R.layout.slider_row, container, false)
val slideImg: ImageView = slideLayout.findViewById(R.id.slider)
Picasso.get().load(image.getimagee()[position]).into(slideImg)
container.addView(slideLayout)
return slideLayout
}
override fun isViewFromObject(view: View, `object`: Any): Boolean {
return view == `object`
}
override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
container.removeView(`object` as View?)
}
override fun getCount(): Int {
return images.size
}
// here is my activity
class ShowItemActivity : AppCompatActivity() {
var mtoolBar: Toolbar? = null
var itemImage: ImageView? = null
var priceTV: TextView? = null
var titleTV: TextView? = null
var chatBtn: Button? = null
приватный var sliderPageAdapter: SliderPageAdapter? = null
var descriptionTV: TextView? = null
var categoryTV: TextView? = null
var subcategoryTV: TextView? = null
var itemId: String = ""
var title: String = ""
var state: TextView? = null
var lga: TextView? = null
private lateinit var mPager: ViewPager
private var imagesArray : MutableList<Items>? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_show_item)
imagesArray = ArrayList()
sliderPageAdapter = SliderPageAdapter(this, imagesArray as ArrayList<Items>)
mPager = findViewById(R.id.item_show_image)
mPager.setPadding(10,0,10,0)
mPager.adapter = sliderPageAdapter
itemId = intent.getStringExtra("itemId")!!
title = intent.getStringExtra("title")!!
mtoolBar = findViewById(R.id.show_items_toolbar)
setSupportActionBar(mtoolBar)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
supportActionBar?.setDisplayShowHomeEnabled(true)
supportActionBar?.title = title
priceTV = findViewById(R.id.price_show_item)
titleTV = findViewById(R.id.title_show_item)
chatBtn = findViewById(R.id.chat_show_item)
state = findViewById(R.id.state_item)
lga = findViewById(R.id.lga_item)
descriptionTV = findViewById(R.id.expandable_text)
categoryTV = findViewById(R.id.category_text)
subcategoryTV = findViewById(R.id.subcategory_text)
getItemDetails(itemId)
}
private fun getItemDetails(itemId: String?) {
var itemsRef: DatabaseReference = FirebaseDatabase.getInstance().reference.child("Items")
itemsRef.child(itemId!!).addValueEventListener(object : ValueEventListener{
override fun onDataChange(p0: DataSnapshot) {
if (p0.exists()) {
for (snapshot in p0.children) {
val items = p0.getValue(Items::class.java)
(imagesArray as ArrayList<Items>).add(items!!)
priceTV!!.text = items!!.getpricee()
titleTV!!.text = items.gettitlee()
descriptionTV!!.text = items.getdescriptionn()
categoryTV!!.text = items.getcategoryy()
subcategoryTV!!.text = items.getsubcategoryy()
state!!.text = items.getstatee()
lga!!.text = items.getlgaa()
/*if (items.getimagee().isEmpty()) {
itemImage!!.setImageResource(R.drawable.ic_insert_photo_black_24dp)
} else {
Picasso.get()
.load(items.getimagee()[i])
.into(itemImage)
}*/
}
sliderPageAdapter?.notifyDataSetChanged()
}
}
override fun onCancelled(p0: DatabaseError) {
}
})
}
}
Буду признателен за любую помощь .. Ошибка на Picasso..но я не знаю, как ее исправить
Я использую Picasso для загрузки массива изображений из базы данных Firebase в пейджер представления, после скольжения к последнему изображению происходит сбой приложения, и я получаю сообщение об ошибке, которое говорит: java .lang.IndexOutOfBoundsException: Index: 5, Size: 5