Created
March 1, 2016 20:53
-
-
Save umesh0492/e65d5195d8962b1a3049 to your computer and use it in GitHub Desktop.
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
class RecyclerViewWithMultipleViews extends RecyclerView.Adapter<RecyclerView.ViewHolder> { | |
private final String TAG = "SettingAdapter"; | |
private ArrayList<SystemPreferenceStructureDbModel> preferenceList = new ArrayList<>(); | |
private UserProfileActivity mActivity; | |
public RecyclerViewWithMultipleViews(ArrayList<SystemPreferenceStructureDbModel> preferenceList) { | |
this.preferenceList = preferenceList; | |
} | |
public void addPreference(SystemPreferenceStructureDbModel preference) { | |
insert(preference, preferenceList.size()); | |
} | |
private void insert(SystemPreferenceStructureDbModel preference, int position) { | |
preferenceList.add(position, preference); | |
notifyItemInserted(position); | |
} | |
public void resetAndUpdateAdapter(ArrayList<SystemPreferenceStructureDbModel> preferenceList) { | |
this.preferenceList = preferenceList; | |
notifyDataSetChanged(); | |
} | |
@Override | |
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { | |
RecyclerView.ViewHolder viewHolder = null; | |
LayoutInflater inflater = LayoutInflater.from(parent.getContext()); | |
switch (viewType) { | |
case 3: | |
View v3 = inflater.inflate(R.layout.adapter_preference_input, parent, false); | |
viewHolder = new EmailInputHolder(v3); | |
break; | |
case 5: | |
View v5 = inflater.inflate(R.layout.adapter_preference_input, parent, false); | |
viewHolder = new StringInputHolder(v5); | |
break; | |
case 6: | |
View v6 = inflater.inflate(R.layout.adapter_preference_input, parent, false); | |
viewHolder = new IntegerInputHolder(v6); | |
break; | |
} | |
return viewHolder; | |
} | |
@Override | |
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { | |
switch (viewHolder.getItemViewType()) { | |
case 3: | |
EmailInputHolder vh3 = (EmailInputHolder) viewHolder; | |
configureEmailInputHolder(vh3, position); | |
break; | |
case 5: | |
StringInputHolder vh5 = (StringInputHolder) viewHolder; | |
configureStringInputHolder(vh5, position); | |
break; | |
case 6: | |
IntegerInputHolder vh6 = (IntegerInputHolder) viewHolder; | |
configureIntegerInputHolder(vh6, position); | |
break; | |
} | |
} | |
@Override | |
public int getItemViewType(int position) { | |
switch (preferenceList.get(position).getPreferenceTypeInputType()) { | |
case "emailinput": | |
return 3; | |
case "stringinput": | |
return 5; | |
case "integerinput": | |
return 6; | |
default: | |
return 0; | |
} | |
} | |
private void configureEmailInputHolder(final EmailInputHolder holder, final int position) { | |
} | |
private void configureStringInputHolder(final StringInputHolder holder, final int position) { | |
} | |
private void configureIntegerInputHolder(final IntegerInputHolder holder, final int position) { | |
} | |
@Override | |
public int getItemCount() { | |
return preferenceList.size(); | |
} | |
public class EmailInputHolder extends RecyclerView.ViewHolder { | |
public EmailInputHolder(View v) { | |
super(v); | |
} | |
} | |
public class StringInputHolder extends RecyclerView.ViewHolder { | |
public StringInputHolder(View v) { | |
super(v); | |
} | |
} | |
public class IntegerInputHolder extends RecyclerView.ViewHolder { | |
public IntegerInputHolder(View v) { | |
super(v); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment