allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
implementation 'com.github.KalpeshTalkar:KRecyclerViewAdapter:1.0.0'
public class MyHolder extends KRecyclerViewHolder {
private TextView titleLabel, descLabel;
public MyHolder(View itemView) {
super(itemView);
titleLabel = (TextView) itemView.findViewById(R.id.titleLabel);
descLabel = (TextView) itemView.findViewById(R.id.descLabel);
}
@Override
protected void setSelected(@NonNull Context context, boolean selected) {
super.setSelected(context, selected);
// This method is called whenever the holder is selected/unselected.
if (selected) {
// Selected
} else {
// Unselected
}
}
@Override
protected void setData(@NonNull Context context, @NonNull Object itemObject) {
super.setData(context, itemObject);
// This method is called automatically by the adapter.
// override this method and set your data here...
// Check the type of itemObject
if (itemObject instanceof MyObject) {
MyObject myObject = (MyObject)itemObject;
titleLabel.setText(myObject.title);
descLabel.setText(myObject.description);
}
}
}
KRecyclerViewAdapter adapter = new KRecyclerViewAdapter(this, YOUR_ARRAY, new KRecyclerViewHolderCallBack() {
@Override
public KRecyclerViewHolder onCreateViewHolder(@NonNull ViewGroup parent) {
View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.simple_item, parent, false);
return new MyHolder(layoutView);
}
@Override
public void onHolderDisplayed(@NonNull KRecyclerViewHolder holder, int position) {
Log.i("onHolderDisplayed", "Holder Displayed At: " + position);
}
}, new KRecyclerViewItemClickListener() {
@Override
public void onRecyclerItemClicked(@NonNull KRecyclerViewHolder holder, @NonNull Object itemObject, int itemPosition) {
Toast.makeText(MainActivity.this, "Clicked position " + itemPosition, Toast.LENGTH_SHORT).show();
}
});
YOUR_RECYCLER_VIEW.setAdapter(adapter);
adapter.allowsSingleSelection = true; // Enables single selection
adapter.allowsMultipleSelection = true; // Enables multiple selection
adapter.deselectItemOnClickIfSelected = true; // Deselects the item if already selected.
adapter.getSelectedIndexes(); // Get list of selected item positions
KRecyclerViewAdapter adapter = new KRecyclerViewAdapter(this, YOUR_ARRAY, new KRecyclerViewHolderViewTypeCallBack() {
@Override
public int recyclerItemViewType(int position, @NonNull Object itemObject) {
if (position % 2 == 0) {
return 1;
} else {
return 2;
}
}
@Override
public KRecyclerViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
if (viewType == 1) {
View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.simple_item, null);
return new SimpleHolder(layoutView);
} else {
View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.another_item, null);
return new AnotherHolder(layoutView);
}
}
@Override
public void onHolderDisplayed(@NonNull KRecyclerViewHolder holder, int position) {
Log.i("onHolderDisplayed", "Holder Displayed At: " + position);
}
}, new KRecyclerViewItemClickListener() {
@Override
public void onRecyclerItemClicked(@NonNull KRecyclerViewHolder holder, @NonNull Object itemObject, int itemPosition) {
Toast.makeText(MainActivity.this, "Clicked position " + itemPosition, Toast.LENGTH_SHORT).show();
}
});
YOUR_RECYCLER_VIEW.setAdapter(adapter);