From 5f837d6edbb5da46d7fbda6b9028b2e25ddb7e23 Mon Sep 17 00:00:00 2001 From: Shinokuni <shinokuni@openserver.fr> Date: Wed, 30 Jan 2019 19:44:30 +0000 Subject: [PATCH] Adding click listener and default click animation to feed items list --- .../com/readrops/app/MainItemListAdapter.java | 20 +++++++++++++++++-- app/src/main/res/layout/image_list_item.xml | 3 ++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/readrops/app/MainItemListAdapter.java b/app/src/main/java/com/readrops/app/MainItemListAdapter.java index 0154f16c..5b541297 100644 --- a/app/src/main/java/com/readrops/app/MainItemListAdapter.java +++ b/app/src/main/java/com/readrops/app/MainItemListAdapter.java @@ -19,6 +19,7 @@ import com.readrops.app.database.entities.Item; public class MainItemListAdapter extends ListAdapter<Item, MainItemListAdapter.ViewHolder> { private RequestManager manager; + private OnItemClickListener listener; public MainItemListAdapter(RequestManager manager) { super(DIFF_CALLBACK); @@ -34,7 +35,7 @@ public class MainItemListAdapter extends ListAdapter<Item, MainItemListAdapter.V @Override public boolean areContentsTheSame(@NonNull Item item, @NonNull Item t1) { return item.getTitle().equals(t1.getTitle()) && - item.getContent().equals(t1.getContent()); + item.getDescription().equals(t1.getDescription()); } }; @@ -60,7 +61,15 @@ public class MainItemListAdapter extends ListAdapter<Item, MainItemListAdapter.V manager.load(item.getImageLink()).apply(requestOptions).into(viewHolder.itemImage); } - static class ViewHolder extends RecyclerView.ViewHolder { + public interface OnItemClickListener { + void onItemClick(Item item); + } + + public void setOnItemClickListener() { + + } + + class ViewHolder extends RecyclerView.ViewHolder { private TextView itemTitle; private ImageView itemImage; @@ -69,6 +78,13 @@ public class MainItemListAdapter extends ListAdapter<Item, MainItemListAdapter.V ViewHolder(@NonNull View itemView) { super(itemView); + itemView.setOnClickListener((view -> { + int position = getAdapterPosition(); + + if (listener != null && position != RecyclerView.NO_POSITION) + listener.onItemClick(getItem(position)); + })); + itemTitle = itemView.findViewById(R.id.item_title); itemImage = itemView.findViewById(R.id.item_image); date = itemView.findViewById(R.id.item_date); diff --git a/app/src/main/res/layout/image_list_item.xml b/app/src/main/res/layout/image_list_item.xml index dc151b93..0c450bd1 100644 --- a/app/src/main/res/layout/image_list_item.xml +++ b/app/src/main/res/layout/image_list_item.xml @@ -2,7 +2,8 @@ <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" - android:layout_height="wrap_content"> + android:layout_height="wrap_content" + android:background="?android:attr/selectableItemBackground"> <TextView android:id="@+id/item_title"