Created
October 26, 2018 09:36
-
-
Save donrokzon/832860c49940190b2296e2be65060fb0 to your computer and use it in GitHub Desktop.
MultiView Recyclerview
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 ProfileAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { | |
private final Context context; | |
private List<Data> profileList; | |
public class MyViewHolder extends RecyclerView.ViewHolder { | |
TextView textViewFirstName; | |
ImageView imageView; | |
public MyViewHolder(View view) { | |
super(view); | |
textViewFirstName = view.findViewById(R.id.textView); | |
imageView = view.findViewById(R.id.imageView); | |
} | |
} | |
public class MyViewHolder2 extends RecyclerView.ViewHolder { | |
public MyViewHolder2(View view) { | |
super(view); | |
} | |
} | |
public ProfileAdapter(List<Data> moviesList, Context context) { | |
this.profileList = moviesList; | |
this.context = context; | |
} | |
@Override | |
public int getItemViewType(int position) { | |
switch (profileList.get(position).getId()) { | |
case 4: | |
return 2; | |
default: | |
return 0; | |
} | |
} | |
@Override | |
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { | |
View itemView = LayoutInflater.from(parent.getContext()) | |
.inflate(R.layout.profile_list_row, parent, false); | |
View itemView2 = LayoutInflater.from(parent.getContext()) | |
.inflate(R.layout.test_row, parent, false); | |
switch (viewType) { | |
case 0: | |
return new MyViewHolder(itemView); | |
case 2: | |
return new MyViewHolder2(itemView2); | |
} | |
return null; | |
} | |
@Override | |
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) { | |
switch (holder.getItemViewType()) { | |
case 0: | |
final MyViewHolder myViewHolder = (MyViewHolder) holder; | |
Data profile = profileList.get(position); | |
myViewHolder.textViewFirstName.setText(profile.getFirstName()); | |
Picasso.get().load(profile.getAvatar()).into(myViewHolder.imageView); | |
holder.itemView.setOnClickListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
Pair<View, String> pair1 = Pair.create((View) myViewHolder.imageView, "IMAGE"); | |
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(((MainActivity) context), pair1); | |
context.startActivity(new Intent(context, ProfileDetailActivity.class), options.toBundle()); | |
} | |
}); | |
break; | |
case 2: | |
final MyViewHolder2 myViewHolder2 = (MyViewHolder2) holder; | |
break; | |
} | |
} | |
@Override | |
public int getItemCount() { | |
return profileList.size(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment