Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 循环查看加载更多丢失的项目滚动时单击_Java_Android_Android Recyclerview - Fatal编程技术网

Java 循环查看加载更多丢失的项目滚动时单击

Java 循环查看加载更多丢失的项目滚动时单击,java,android,android-recyclerview,Java,Android,Android Recyclerview,我对Recyclerview项单击有问题。当在addOnScrollListener中向下滚动时,我将数据提取到list()方法,并通过recyclerview自定义适配器中的addItem()方法进行添加。我通过点击碎片上的界面获得物品位置。首先获取数据工作正常,但在获取loadmore时,无法使用onButtonLClick()方法将项目位置检索到新数据 //在onBindViewHolder中; holder.lnl.setOnClickListener(新视图.OnClickListen

我对Recyclerview项单击有问题。当在
addOnScrollListener
中向下滚动时,我将数据提取到
list()
方法,并通过recyclerview自定义适配器中的
addItem()
方法进行添加。我通过点击碎片上的界面获得物品位置。首先获取数据工作正常,但在获取loadmore时,无法使用
onButtonLClick()
方法将项目位置检索到新数据

//在onBindViewHolder中;
holder.lnl.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
试一试{
rcylviewItemNotify.onButtonClick(位置);
}捕获(可丢弃的e){
//接口可以为空
}
}
});
//适配器中的addItem()方法;
公共无效附加项(列表img){
用于(图像im:img){
arrayList.add(im);
}
notifyDataSetChanged();
}
//接口代码;
公共接口RcylviewItemNotify{
void on按钮单击(内部位置);
}
//在片段代码中;
公众作废清单(){
GetServices服务=RefughtInstance.GetRefughtInstance().create(GetServices.class);
Call=service.getImages();
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
Images body=response.body();
records=body.getImages();
adapter.addItem(记录);
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
Toast.makeText(getActivity(),“网络hatasıonFailure”,Toast.LENGTH_SHORT.show();
reflesh.setRefreshing(false);
}
});
}
@凌驾
公共无效按钮单击(内部位置){
最终字符串clickId=String.valueOf(records.get(position.getID());
Toast.makeText(getActivity(),“ID:+clickId,Toast.LENGTH_SHORT).show();
}
//回收设置;
公共void加载视图(){
layoutManager=新的GridLayoutManager(getActivity(),2);
recyclerView.setLayoutManager(layoutManager);
收款。反向(记录);
适配器=新的RecycleServiceAdapter(此,(ArrayList)记录,getActivity());
recyclerView.setAdapter(适配器);
adapter.notifyDataSetChanged();
reflesh.setRefreshing(false);
}

我不确定这是否是您的问题,但您应该使用
视图持有者来获得该职位。在您的
onBindViewHolder的内部

@Override
public void onClick(View view){
    int itemPosition = holder.getAdapterPosition();

    // Then do whatever you need to with the position 
}

我不确定这是否是您的问题,但您应该使用
ViewHolder
获得该职位。在您的
onBindViewHolder的内部

@Override
public void onClick(View view){
    int itemPosition = holder.getAdapterPosition();

    // Then do whatever you need to with the position 
}

我已经用RcylviewItemNotify接口方法带来了这个职位。我的问题是当在recyclerview中添加更多项目时,无法获得新项目information@egencoglu看起来您正在使用
onClick
中的直接位置,这可能不可靠,并可能导致错误或不一致。当您在
onBindViewHolder
函数中调用的另一个函数中使用位置时,您应该从holder获取位置。持有者的位置将更加可靠。我在onBindViewHolder:中添加onClick并将数据添加到我列表中的新arraylist()时解决了这个问题方法。谢谢。我已经用RcylviewItemNotify接口方法带来了这个职位。我的问题是当在recyclerview中添加更多项目时,无法获得新项目information@egencoglu看起来您正在使用
onClick
中的直接位置,这可能不可靠,并可能导致错误或不一致。当您在
onBindViewHolder
函数中调用的另一个函数中使用位置时,您应该从holder获取位置。持有者的位置将更加可靠。我在onBindViewHolder:中添加onClick并在我的list()方法中将数据添加到新的arraylist时解决了这个问题。谢谢