大佬教程收集整理的这篇文章主要介绍了如何在Android中的RecyclerView中跟踪所选项目?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有谁知道如何跟踪所选项目?我一直在看一些名为SparseBooleanArray的东西,但我不确定如何实现它.
这是我的适配器代码:
public class TableRVAdapter extends RecyclerView.Adapter<TableRVAdapter.TableHolder> { List<Tables> tableList; private SparseBooleanArray SELEctedItems; public TableRVAdapter(List<Tables> tableList) { this.tableList = tableList; SELEctedItems = new SparseBooleanArray(); // setHasStablEIDs(true); } class TableHolder extends RecyclerView.ViewHolder { TextView tableTV; CardView tableCV; View circle; View parentView; TableHolder(final View itemView) { super(itemView); tableTV = (TextView)itemView.findViewById(R.id.tableTV); tableCV = (CardView)itemView.findViewById(R.id.tableCV); circle = itemView.findViewById(R.id.statusCirclE); itemView.setClickable(true); parentView = itemView; tableCV.setOnClickListener(new View.onClickListener() { @Override public void onClick(View view) { circle.setBACkgroundresource(R.drawable.circlE); } }); } /* @Override public void onClick(View view) { if (SELEctedItems.get(getAdapterPosition(),falsE)) { tableCV.setSELEcted(false); circle.setBACkgroundresource(R.drawable.circle2); } else { SELEctedItems.put(getAdapterPosition(),truE); tableCV.setSELEcted(true); circle.setBACkgroundresource(R.drawable.circlE); } }*/ } @Override public TableHolder onCreateViewHolder(ViewGroup parent,int viewTypE) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.table_item,parent,falsE); TableHolder tableHolder = new TableHolder(view); return tableHolder; } @Override public void onAttachedToRecyclerView(RecyclerView recyclerView) { super.onAttachedToRecyclerView(recyclerView); } @Override public void onBindViewHolder(TableHolder holder,int position) { holder.tableTV.setText(tableList.get(position).getTablenumber()); } /** * Returns the @R_965_10586@l number of items in the data set hold by the adapter. * * @return The @R_965_10586@l number of items in this adapter. */ @Override public int getItemCount() { return tableList.size(); } }
onCreateViewHolder(parent,viewTypE) onBindVIewHolder(viewholder,position)
第一个函数用于扩充将在recyclelerview中使用的视图,第二个函数用于将您拥有的数据绑定到此视图,从而在视图上设置正确的视图状态.
recyclerview本身只会膨胀一定数量的视图,然后开始重新使用已经膨胀的视图(因此是recyclelerview).因此,您需要为onBindViewholder()中的每个项目设置正确的状态,并在该位置使用集合中的项目来设置正确的viewState.对于您的示例:根据对象中的布尔值更改图标的颜色,例如:isPressed
以上是大佬教程为你收集整理的如何在Android中的RecyclerView中跟踪所选项目?全部内容,希望文章能够帮你解决如何在Android中的RecyclerView中跟踪所选项目?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。