You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
enumRowTypes {
ROW_1
}
classRowParent {
// Parent Class for all rows.
}
classRow1extendsRowParent {
// Child-1
}
classViewHolder1 {
// To hold views present in Row1.
}
Linking your POJO to ViewHolder in a RowViewSetter class.
classRowViewSetter1implementsListRowViewSetter<Row1, ViewHolder1> {
@OverridepublicintgetRowType() {
// return unique row type identifier (0-based)returnRowTypes.ROW_1.ordinal();
}
@OverridepublicRow<ViewHolder1> getNewRow(ViewGroupparent) {
// 1.Create Row programmatically (can be created by XML as well.)// 2.Setting up row view holder.returnnewRow<ViewHolder1>(view, viewHolder);
}
@OverridepublicvoidsetRowView(Row1data, ViewHolder1rowViewHolder, intposition) {
// Update view values using your data & viewHolder.
}
@OverridepublicvoidregisterChildrenViewClickEvents(ViewHolder1rowViewHolder,
ChildViewsClickHandlerchildViewsClickHandler) {
// Register for child-view clicks if required.
}
@OverridepublicvoidonChildViewClicked(ViewclickedChildView, Row1rowData,
inteventId) {
// Click events for registerd chilren will be posted here
}
}
Telling adapter about your row.
classMyEasyListAdapterextendsEasyListAdapter<RowParent> {
publicMyEasyAdapter(Contextcontext) {
super(context);
}
@OverridepublicintgetRowViewType(RowParentrowData) {
// Return correct row type for given data object.
}
@OverrideprotectedListRowViewSetter<?, ?>[] getListRowViewSetters() {
// Return all types of rows you want to support.ListRowViewSetter<?, ?>[] rows = { newRowViewSetter1() };
returnrows;
}
}
Adding new row becomes simple as shown below
//Update RowTypes EnumenumRowTypes {
ROW_1,ROW_2
}
// Create New POJO & View HolderclassRow2extendsRowParent {
// Child-2
}
classViewHolder2 {
// To hold views present in Row2.
}
// Link POJO to ViewHolderclassRowViewSetter2implementsListRowViewSetter<Row2, ViewHolder2> {
// Implement methods for this Row2 as shown in RowViewSetter1
}
// Last step is to tell your adapter about your new RowViewSetter class by updating ListRowViewSetter<?, ?>[] rows = { newRowViewSetter1() };
toListRowViewSetter<?, ?>[] rows = { newRowViewSetter1(), newRowViewSetter2() };