Android 对于onBindView中的循环,Holder在每个循环中迭代4次
我在recyclerView适配器的onBindView Holder中使用for循环,但是它在一个循环中迭代了4次。下面是我代码的详细信息。如果您有任何帮助,我将不胜感激。前 我的回收商查看代码Android 对于onBindView中的循环,Holder在每个循环中迭代4次,android,for-loop,android-recyclerview,Android,For Loop,Android Recyclerview,我在recyclerView适配器的onBindView Holder中使用for循环,但是它在一个循环中迭代了4次。下面是我代码的详细信息。如果您有任何帮助,我将不胜感激。前 我的回收商查看代码 RecyclerView recyclerView2 = (RecyclerView) findViewById(R.id.online_recy); final GridLayoutManager gm = new GridLayoutManager(Online3.this, 2)
RecyclerView recyclerView2 = (RecyclerView) findViewById(R.id.online_recy);
final GridLayoutManager gm = new GridLayoutManager(Online3.this, 2);
recyclerView2.setNestedScrollingEnabled(false);
final OnlineAdapter oa = new OnlineAdapter(getApplicationContext(), list2,wishList);
recyclerView2.setLayoutManager(gm);
recyclerView2.getRecycledViewPool().clear();
oa.notifyDataSetChanged();
recyclerView2.setAdapter(oa);
public class OnlineAdapter extends RecyclerView.Adapter<OnlineAdapter.MyViewHolder> {
private Context context;
private List<Online2_G_S> online2_g_sList = null;
View itemView;
List wishList;
public OnlineAdapter(Context context, List<Online2_G_S> list, List wishList) {
this.context = context;
this.online2_g_sList = list;
this.wishList = wishList;
}
@Override
public OnlineAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.online_shopping_single_row, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(final OnlineAdapter.MyViewHolder holder, final int position) {
for (int n=0 ;n<4;n++){
Log.i("sandeep", String.valueOf(wishList.get(n)));//liked
}
}
适配器代码
RecyclerView recyclerView2 = (RecyclerView) findViewById(R.id.online_recy);
final GridLayoutManager gm = new GridLayoutManager(Online3.this, 2);
recyclerView2.setNestedScrollingEnabled(false);
final OnlineAdapter oa = new OnlineAdapter(getApplicationContext(), list2,wishList);
recyclerView2.setLayoutManager(gm);
recyclerView2.getRecycledViewPool().clear();
oa.notifyDataSetChanged();
recyclerView2.setAdapter(oa);
public class OnlineAdapter extends RecyclerView.Adapter<OnlineAdapter.MyViewHolder> {
private Context context;
private List<Online2_G_S> online2_g_sList = null;
View itemView;
List wishList;
public OnlineAdapter(Context context, List<Online2_G_S> list, List wishList) {
this.context = context;
this.online2_g_sList = list;
this.wishList = wishList;
}
@Override
public OnlineAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.online_shopping_single_row, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(final OnlineAdapter.MyViewHolder holder, final int position) {
for (int n=0 ;n<4;n++){
Log.i("sandeep", String.valueOf(wishList.get(n)));//liked
}
}
我的预期结果是
09-18 11:01:51.777 27865-27865/com.parse.AwaazDo I/sandeep: 0
09-18 11:01:51.777 27865-27865/com.parse.AwaazDo I/sandeep: 1
09-18 11:01:51.777 27865-27865/com.parse.AwaazDo I/sandeep: 2
09-18 11:01:51.777 27865-27865/com.parse.AwaazDo I/sandeep: 3
改变
for (int n=0 ;n<4;n++){
Log.i("sandeep", String.valueOf(n));//liked
}
您应该在
onBindViewHolder
方法中执行此操作
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
Log.i("sandeep", String.valueOf(position));//liked
}
它将检查数据。和位置将被更改
如果online2\u g\u列表的大小为4,并且onBindViewHolder
方法将消失
通过4次数据
及
- 如果
位置==0
,则if将第一次循环
- 如果
位置==1
,则if将再次循环
- 如果
位置==2
,则if将第三次循环
- 如果
位置==3
,则if将第四次循环
因此,如果要循环,可以将代码中的n
更改为1
。更改
for (int n=0 ;n<4;n++){
Log.i("sandeep", String.valueOf(n));//liked
}
您应该在onBindViewHolder
方法中执行此操作
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
Log.i("sandeep", String.valueOf(position));//liked
}
它将检查数据。和位置将被更改
如果online2\u g\u列表的大小为4,并且onBindViewHolder
方法将消失
通过4次数据
及
- 如果
位置==0
,则if将第一次循环
- 如果
位置==1
,则if将再次循环
- 如果
位置==2
,则if将第三次循环
- 如果
位置==3
,则if将第四次循环
如果你想循环,您可以将代码中的n
更改为1
。您想做什么?我想要我的预期结果,即0 1 2 3关于您如何初始化适配器的更多代码。您想做什么?我想要我的预期结果,即0 1 2 3关于您如何初始化适配器的更多代码。但是如果您想循环,我想使用循环在您的代码中,您必须将n
更改为1
。我已经编辑了我的代码,我想要使用for循环onBindViewHolder
也循环的愿望列表项。@dhami_ji@KeiLiuyue谢谢,我收到了,但我想使用循环如果你想在代码中循环,你必须将n
更改为1
。我已经编辑了我的代码,我想要使用for looponBindViewHolder
同时循环的愿望列表项。@dhami_ji@KeiLiuyue谢谢,我知道了