From 006769615b8fa494ad79140e8d72f3c9ed262af6 Mon Sep 17 00:00:00 2001 From: Hein Pauwelyn Date: Sat, 5 Nov 2016 18:12:37 +0100 Subject: [PATCH 1/3] :bug: opnieuw hetzelfde --- .../watchfriends/adapter/SeriesAdapter.java | 51 ++++++++++++------- .../watchfriends/view/HomeFragment.java | 4 ++ .../app/src/main/res/layout/fragment_home.xml | 12 +++-- 3 files changed, 45 insertions(+), 22 deletions(-) diff --git a/WatchFriends/app/src/main/java/nmct/jaspernielsmichielhein/watchfriends/adapter/SeriesAdapter.java b/WatchFriends/app/src/main/java/nmct/jaspernielsmichielhein/watchfriends/adapter/SeriesAdapter.java index 691cedc..9a7b013 100644 --- a/WatchFriends/app/src/main/java/nmct/jaspernielsmichielhein/watchfriends/adapter/SeriesAdapter.java +++ b/WatchFriends/app/src/main/java/nmct/jaspernielsmichielhein/watchfriends/adapter/SeriesAdapter.java @@ -2,39 +2,54 @@ import android.content.Context; import android.databinding.DataBindingUtil; +import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.AdapterView; import android.widget.ArrayAdapter; -import android.widget.ListView; import nmct.jaspernielsmichielhein.watchfriends.R; import nmct.jaspernielsmichielhein.watchfriends.databinding.PosterSeriesBinding; import nmct.jaspernielsmichielhein.watchfriends.helper.Interfaces; import nmct.jaspernielsmichielhein.watchfriends.model.Series; -public class SeriesAdapter extends ArrayAdapter { +public class SeriesAdapter extends RecyclerView.Adapter { public Interfaces.onSeriesSelectedListener mListener; - public SeriesAdapter(Context context, ListView listView) { - super(context, R.layout.poster_series); + public SeriesAdapter(Context context, RecyclerView recyclerView) { + mListener = (Interfaces.onSeriesSelectedListener) context; - listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - Series selectedSeries = getItem(position); - if (selectedSeries != null) { - mListener.onSeriesSelected(selectedSeries); - } - } - }); } @Override - public View getView(int position, View convertView, ViewGroup parent) { - final PosterSeriesBinding posterSeriesBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.poster_series, parent, false); - posterSeriesBinding.setSeries(getItem(position)); - return posterSeriesBinding.getRoot(); + public SeriesViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + + View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.poster_series, parent, false); + return new SeriesViewHolder(v); + } + + @Override + public void onBindViewHolder(SeriesViewHolder holder, int position) { + + } + + @Override + public int getItemCount() { + return 0; + } + + public class SeriesViewHolder extends RecyclerView.ViewHolder { + + public SeriesViewHolder(View itemView) { + super(itemView); + + itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + + } + }); + } } } \ No newline at end of file diff --git a/WatchFriends/app/src/main/java/nmct/jaspernielsmichielhein/watchfriends/view/HomeFragment.java b/WatchFriends/app/src/main/java/nmct/jaspernielsmichielhein/watchfriends/view/HomeFragment.java index e653da5..e8b633f 100644 --- a/WatchFriends/app/src/main/java/nmct/jaspernielsmichielhein/watchfriends/view/HomeFragment.java +++ b/WatchFriends/app/src/main/java/nmct/jaspernielsmichielhein/watchfriends/view/HomeFragment.java @@ -3,6 +3,7 @@ import android.app.Fragment; import android.databinding.DataBindingUtil; import android.os.Bundle; +import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -26,6 +27,9 @@ public static HomeFragment newInstance() { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { FragmentHomeBinding fragmentHomeBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_home, container, false); homeFragmentViewModel = new HomeFragmentViewModel(getActivity(), fragmentHomeBinding); + + //RecyclerView rvRecommended = (RecyclerView) super.findViewById(R.layout.rvRecommended); + return fragmentHomeBinding.getRoot(); } diff --git a/WatchFriends/app/src/main/res/layout/fragment_home.xml b/WatchFriends/app/src/main/res/layout/fragment_home.xml index ddcbf10..83648b9 100644 --- a/WatchFriends/app/src/main/res/layout/fragment_home.xml +++ b/WatchFriends/app/src/main/res/layout/fragment_home.xml @@ -37,16 +37,20 @@ android:text="Recommended by friends" style="?android:attr/listSeparatorTextViewStyle" /> - + + From c51183c302416f1ddb1817d370464619cc8bb581 Mon Sep 17 00:00:00 2001 From: nielsbril Date: Sat, 5 Nov 2016 23:40:09 +0100 Subject: [PATCH 2/3] Fixed issues RecyclerView --- .../watchfriends/adapter/SeriesAdapter.java | 41 ++++++++++++------- .../watchfriends/binder/SeriesBinder.java | 14 ++++++- .../watchfriends/view/HomeFragment.java | 4 ++ .../app/src/main/res/layout/fragment_home.xml | 3 +- 4 files changed, 45 insertions(+), 17 deletions(-) diff --git a/WatchFriends/app/src/main/java/nmct/jaspernielsmichielhein/watchfriends/adapter/SeriesAdapter.java b/WatchFriends/app/src/main/java/nmct/jaspernielsmichielhein/watchfriends/adapter/SeriesAdapter.java index 9a7b013..5a78335 100644 --- a/WatchFriends/app/src/main/java/nmct/jaspernielsmichielhein/watchfriends/adapter/SeriesAdapter.java +++ b/WatchFriends/app/src/main/java/nmct/jaspernielsmichielhein/watchfriends/adapter/SeriesAdapter.java @@ -2,6 +2,7 @@ import android.content.Context; import android.databinding.DataBindingUtil; +import android.databinding.ObservableArrayList; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; @@ -16,40 +17,50 @@ public class SeriesAdapter extends RecyclerView.Adapter { public Interfaces.onSeriesSelectedListener mListener; - public SeriesAdapter(Context context, RecyclerView recyclerView) { + private Context context; + private ObservableArrayList series = null; + public SeriesAdapter(ObservableArrayList series, Context context) { + this.context = context; + this.series = series; mListener = (Interfaces.onSeriesSelectedListener) context; } @Override public SeriesViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - - View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.poster_series, parent, false); - return new SeriesViewHolder(v); + PosterSeriesBinding posterSeriesBinding = DataBindingUtil.inflate(LayoutInflater.from(context), R.layout.poster_series, parent, false); + SeriesAdapter.SeriesViewHolder seriesViewHolder = new SeriesAdapter.SeriesViewHolder(posterSeriesBinding); + return seriesViewHolder; } @Override public void onBindViewHolder(SeriesViewHolder holder, int position) { - + Series seriesObject = series.get(position); + holder.getPosterSeriesBinding().setSeries(seriesObject); + holder.getPosterSeriesBinding().executePendingBindings(); } @Override public int getItemCount() { - return 0; + return series.size(); } - public class SeriesViewHolder extends RecyclerView.ViewHolder { - - public SeriesViewHolder(View itemView) { - super(itemView); + public class SeriesViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { + final PosterSeriesBinding posterSeriesBinding; - itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { + public SeriesViewHolder(PosterSeriesBinding posterSeriesBinding) { + super(posterSeriesBinding.getRoot()); + this.posterSeriesBinding = posterSeriesBinding; + posterSeriesBinding.getRoot().setOnClickListener(this); + } + public PosterSeriesBinding getPosterSeriesBinding() { + return posterSeriesBinding; + } - } - }); + @Override + public void onClick(View v) { + Series selectedSeries = series.get(getAdapterPosition()); } } } \ No newline at end of file diff --git a/WatchFriends/app/src/main/java/nmct/jaspernielsmichielhein/watchfriends/binder/SeriesBinder.java b/WatchFriends/app/src/main/java/nmct/jaspernielsmichielhein/watchfriends/binder/SeriesBinder.java index e48c3f8..537e78f 100644 --- a/WatchFriends/app/src/main/java/nmct/jaspernielsmichielhein/watchfriends/binder/SeriesBinder.java +++ b/WatchFriends/app/src/main/java/nmct/jaspernielsmichielhein/watchfriends/binder/SeriesBinder.java @@ -1,7 +1,9 @@ package nmct.jaspernielsmichielhein.watchfriends.binder; import android.databinding.BindingAdapter; +import android.databinding.ObservableArrayList; import android.databinding.ObservableList; +import android.support.v7.widget.RecyclerView; import android.widget.ListView; import nmct.jaspernielsmichielhein.watchfriends.adapter.SeriesAdapter; @@ -9,7 +11,7 @@ import nmct.jaspernielsmichielhein.watchfriends.model.Series; public class SeriesBinder { - @BindingAdapter("items") + /*@BindingAdapter("items") public static void setSeries(ListView listView, ObservableList series) { if(series != null) { SeriesAdapter seriesAdapter = new SeriesAdapter(listView.getContext(), listView); @@ -17,5 +19,15 @@ public static void setSeries(ListView listView, ObservableList series) { listView.setAdapter(seriesAdapter); //Utils.setListViewHeightBasedOnChildren(listView); } + }*/ + + @BindingAdapter("items") + public static void setSeries(RecyclerView recyclerView, ObservableArrayList series) { + if(series != null) { + SeriesAdapter seriesAdapter = new SeriesAdapter(series, recyclerView.getContext()); + recyclerView.setAdapter(seriesAdapter); + seriesAdapter.notifyDataSetChanged(); + //Utils.setListViewHeightBasedOnChildren(listView); + } } } \ No newline at end of file diff --git a/WatchFriends/app/src/main/java/nmct/jaspernielsmichielhein/watchfriends/view/HomeFragment.java b/WatchFriends/app/src/main/java/nmct/jaspernielsmichielhein/watchfriends/view/HomeFragment.java index e8b633f..96cad31 100644 --- a/WatchFriends/app/src/main/java/nmct/jaspernielsmichielhein/watchfriends/view/HomeFragment.java +++ b/WatchFriends/app/src/main/java/nmct/jaspernielsmichielhein/watchfriends/view/HomeFragment.java @@ -3,6 +3,8 @@ import android.app.Fragment; import android.databinding.DataBindingUtil; import android.os.Bundle; +import android.support.v7.widget.DefaultItemAnimator; +import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; @@ -26,6 +28,8 @@ public static HomeFragment newInstance() { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { FragmentHomeBinding fragmentHomeBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_home, container, false); + fragmentHomeBinding.rvRecommended.setLayoutManager(new LinearLayoutManager(this.getActivity(), LinearLayoutManager.HORIZONTAL, false)); + fragmentHomeBinding.rvRecommended.setItemAnimator(new DefaultItemAnimator()); homeFragmentViewModel = new HomeFragmentViewModel(getActivity(), fragmentHomeBinding); //RecyclerView rvRecommended = (RecyclerView) super.findViewById(R.layout.rvRecommended); diff --git a/WatchFriends/app/src/main/res/layout/fragment_home.xml b/WatchFriends/app/src/main/res/layout/fragment_home.xml index 83648b9..2b0f90f 100644 --- a/WatchFriends/app/src/main/res/layout/fragment_home.xml +++ b/WatchFriends/app/src/main/res/layout/fragment_home.xml @@ -40,7 +40,8 @@ - diff --git a/WatchFriends/app/src/main/res/layout/poster_series.xml b/WatchFriends/app/src/main/res/layout/poster_series.xml index 3f2a080..6db2a97 100644 --- a/WatchFriends/app/src/main/res/layout/poster_series.xml +++ b/WatchFriends/app/src/main/res/layout/poster_series.xml @@ -9,16 +9,23 @@ + + + android:id="@+id/teName" + android:layout_width="match_parent" + android:layout_height="60px" + android:text="@{series.name}" + android:textAlignment="center"/> diff --git a/WatchFriends/app/src/main/res/values/strings.xml b/WatchFriends/app/src/main/res/values/strings.xml index a7f76e8..cf0ad7d 100644 --- a/WatchFriends/app/src/main/res/values/strings.xml +++ b/WatchFriends/app/src/main/res/values/strings.xml @@ -21,4 +21,5 @@ airDateIcon overviewIcon Air date: + Friends who watched this episode \ No newline at end of file