我在调用适配器的
notifyItemRangeInserted
时遇到了一个问题。当我调用这个方法时,什么都没有发生,就这么简单。我试着在
ViewHolderAdapter
中设置一些
println()
,但他没有被调用,所以我不能查看打印的结果。
我已经尝试了适配器的所有 "通知 "命令,但都不起作用。根本没有发生。
这就是我的
MainActivity
。我测试的所有对象和数组,都工作得很好。我不明白为什么通知不工作。
class MainActivity:AppCompatActivity(){
//Declarations of the variables
var pageNumber = 1
var limitPerPage = 5
lateinit var product: Product
var productList = ArrayList<EachProduct>()
var myAdapter =ViewHolderAdapter(productList, productList.size)
override fun onCreate(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
recyclerView.layoutManager = LinearLayoutManager(this@MainActivity)
recyclerView.adapter = myAdapter
在列表中添加项目并通知ViewHolderAdapter
的代码是
//update the product list
fun updateProductList(product:Product){
for(i in 0 until 5 step 1){
productList.add(product.produtos[i])
showData(productList,pageNumber*limitPerPage)//then notify
fun showData(productList:List<EachProduct>,productsListSize:Int){
myAdapter.notifyItemRangeInserted(0,productList.size)
这是我的ViewHolderAdapter类
class ViewHolderAdapter(private var products: List<EachProduct>, private val productsListSize: Int): RecyclerView.Adapter<ViewHolderAdapter.ViewHolder>() {
override fun onCreateViewHolder(parent:ViewGroup,viewType:Int): ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.recyclerview_layout, parent, false)
returnViewHolder(view)
override fun getItemCount() = productsListSize
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.productName.text=products[position].nome
Picasso.get().load(products[position].fabricante.img).into((holder.productLogo))
class ViewHolder(itemView: View): RecyclerView.ViewHolder(itemView) {
val productName:TextView=itemView.ProductName
var productLogo:ImageView=itemView.ProductLogo
我希望ViewHolderAdapter
能被调用,但这并没有发生。为什么会这样呢?我不明白。如果有人能帮助我,我将非常感激。