Adding click listener and default click animation to feed items list

This commit is contained in:
Shinokuni 2019-01-30 19:44:30 +00:00
parent 3b8e3c742a
commit 5f837d6edb
2 changed files with 20 additions and 3 deletions

View File

@ -19,6 +19,7 @@ import com.readrops.app.database.entities.Item;
public class MainItemListAdapter extends ListAdapter<Item, MainItemListAdapter.ViewHolder> { public class MainItemListAdapter extends ListAdapter<Item, MainItemListAdapter.ViewHolder> {
private RequestManager manager; private RequestManager manager;
private OnItemClickListener listener;
public MainItemListAdapter(RequestManager manager) { public MainItemListAdapter(RequestManager manager) {
super(DIFF_CALLBACK); super(DIFF_CALLBACK);
@ -34,7 +35,7 @@ public class MainItemListAdapter extends ListAdapter<Item, MainItemListAdapter.V
@Override @Override
public boolean areContentsTheSame(@NonNull Item item, @NonNull Item t1) { public boolean areContentsTheSame(@NonNull Item item, @NonNull Item t1) {
return item.getTitle().equals(t1.getTitle()) && 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); 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 TextView itemTitle;
private ImageView itemImage; private ImageView itemImage;
@ -69,6 +78,13 @@ public class MainItemListAdapter extends ListAdapter<Item, MainItemListAdapter.V
ViewHolder(@NonNull View itemView) { ViewHolder(@NonNull View itemView) {
super(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); itemTitle = itemView.findViewById(R.id.item_title);
itemImage = itemView.findViewById(R.id.item_image); itemImage = itemView.findViewById(R.id.item_image);
date = itemView.findViewById(R.id.item_date); date = itemView.findViewById(R.id.item_date);

View File

@ -2,7 +2,8 @@
<RelativeLayout <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground">
<TextView <TextView
android:id="@+id/item_title" android:id="@+id/item_title"