Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class CategoriesAdapter extends RecyclerView.Adapter<CategoriesAdapter.ViewHolder> {
- private List<Category> categories;
- private Context ctx;
- public CategoriesAdapter(List<Category> categories, Context ctx) {
- this.categories = categories;
- this.ctx = ctx;
- }
- @Override
- public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- View v = LayoutInflater.from(parent.getContext())
- .inflate(R.layout.list_categories, parent, false);
- return new ViewHolder(v);
- }
- @Override
- public void onBindViewHolder(CategoriesAdapter.ViewHolder holder, int position) {
- final Category category = categories.get(position);
- holder.textViewCategoryName.setText(category.getName());
- }
- @Override
- public int getItemCount() {
- return categories.size();
- }
- public class ViewHolder extends RecyclerView.ViewHolder{
- public TextView textViewCategoryName;
- public ViewHolder(final View itemView) {
- super(itemView);
- textViewCategoryName = (TextView) itemView.findViewById(R.id.textViewCategoryName);
- itemView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Fragment fragment = null;
- Category category =(Category) categories.get(getAdapterPosition());
- switch (category.getName()){
- case "Смартфон":
- fragment = new SearchSmartphoneFragment();
- break;
- case "Планшет":
- break;
- }
- if (fragment != null) {
- FragmentManager fragmentManager = getFragmentManager();
- FragmentTransaction ft = fragmentManager.beginTransaction();
- ft.replace(R.id.content_frame,fragment);
- ft.commit();
- }
- }
- });
- }
- }
- }
- FragmentManager fragmentManager = ((Activity) itemView.getContext()).getFragmentManager();
- interface ClickToProfile {
- fun openProfile(user: User)
- }
- class PeopleAdapter(context: Context, private var items: MutableList<User>, private var clickToProfile: ClickToProfile) :
- RecyclerView.Adapter<PeopleViewHolderItem>() {
- private val inflater: LayoutInflater = LayoutInflater.from(context)
- override fun onBindViewHolder(viewHolder: PeopleViewHolderItem, position: Int) {
- viewHolder.bindTo(items[position])
- }
- override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): PeopleViewHolderItem {
- return PeopleViewHolderItem.create(inflater, viewGroup, clickToProfile)
- }
- override fun getItemCount(): Int {
- return items.size
- }
- }
- private fun setupRecyclerView(users: ArrayList<User>) {
- adapter = PeopleAdapter(context!!, users, object : ClickToProfile {
- override fun openProfile(user: User) {
- adapter.notifyDataSetChanged()
- listener?.replaceFragment(ProfileFragment.newInstance(user), true)
- }
- })
- recyclerView.adapter = adapter
- }
- class PeopleViewHolderItem private constructor(view: View,
- private val clickToProfile: ClickToProfile) : RecyclerView.ViewHolder(view) {
- private val itemHuman = view.itemPeople
- @SuppressLint("SetTextI18n")
- fun bindTo(user: User) {
- // listener
- itemHuman.setOnClickListener { selectAndOpen(user) }
- itemHuman.moreBtn.setOnClickListener { selectAndOpen(user) }
- }
- private fun selectAndOpen(user: User) {
- clickToProfile.openProfile(user)
- selectedPosition = layoutPosition
- }
- companion object {
- var selectedPosition = -1
- fun create(inflater: LayoutInflater,
- parent: ViewGroup, clickToProfile: ClickToProfile): PeopleViewHolderItem {
- return PeopleViewHolderItem(inflater.inflate(R.layout.item_people, parent, false), clickToProfile)
- }
- }
- }
Add Comment
Please, Sign In to add comment