Last active
November 22, 2016 10:50
-
-
Save samuel22gj/db5c5390af3483db33383018d0c4cf3f to your computer and use it in GitHub Desktop.
Selected RecyclerView Adapter
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class SelectedRecyclerAdapter extends RecyclerView.Adapter<SelectedRecyclerAdapter.ViewHolder>{ | |
private static final String TAG = SelectedRecyclerAdapter.class.getSimpleName(); | |
public interface OnItemClickListener { | |
void onItemClick(View v, int position); | |
} | |
private OnItemClickListener mListener; | |
private List<FunctionItem> mItemList; | |
private int mCurrSelectedItem = -1; | |
public SelectedRecyclerAdapter(List<FunctionItem> itemList) { | |
mItemList = itemList; | |
} | |
public void setOnItemClickListener(OnItemClickListener listener) { | |
mListener = listener; | |
} | |
public void setSelectedItem(int selectedItem) { | |
if (mCurrSelectedItem != selectedItem) { | |
int prevSelectedItem = mCurrSelectedItem; | |
mCurrSelectedItem = selectedItem; | |
notifyItemChanged(prevSelectedItem); | |
notifyItemChanged(mCurrSelectedItem); | |
} | |
} | |
public class ViewHolder extends RecyclerView.ViewHolder { | |
public View view; | |
public ImageView icon; | |
public TextView name; | |
public ImageView selectedMark; | |
public ViewHolder(View itemView) { | |
super(itemView); | |
view = itemView; | |
icon = (ImageView) itemView.findViewById(R.id.icon); | |
name = (TextView) itemView.findViewById(R.id.name); | |
selectedMark = (ImageView) itemView.findViewById(R.id.selectedMark); | |
} | |
} | |
@Override | |
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { | |
View v = LayoutInflater.from(parent.getContext()) | |
.inflate(R.layout.recycler_item_view, parent, false); | |
return new ViewHolder(v); | |
} | |
@Override | |
public void onBindViewHolder(ViewHolder holder, int position) { | |
FunctionItem item = mItemList.get(position); | |
holder.icon.setImageDrawable(item.getIcon()); | |
holder.name.setText(item.getName()); | |
holder.selectedMark.setVisibility(position == mCurrSelectedItem ? View.VISIBLE : View.INVISIBLE); | |
final int pos = holder.getAdapterPosition(); | |
if (pos != RecyclerView.NO_POSITION) { | |
holder.view.setOnClickListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
if (mListener != null) { | |
mListener.onItemClick(v, pos); | |
} | |
} | |
}); | |
} | |
} | |
@Override | |
public int getItemCount() { | |
return mItemList.size(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment