From 464c0b27203b90b96c7f41d4d87cf13fa6387a03 Mon Sep 17 00:00:00 2001 From: Halzyn Date: Thu, 28 May 2015 15:32:51 +0200 Subject: CardView what it says --- .../java/org/rssin/android/FilterActivity.java | 95 +++++++++++++++------- 1 file changed, 64 insertions(+), 31 deletions(-) (limited to 'app/src/main/java') diff --git a/app/src/main/java/org/rssin/android/FilterActivity.java b/app/src/main/java/org/rssin/android/FilterActivity.java index b1be925..6c827d1 100644 --- a/app/src/main/java/org/rssin/android/FilterActivity.java +++ b/app/src/main/java/org/rssin/android/FilterActivity.java @@ -5,6 +5,8 @@ import android.content.Context; import android.content.Intent; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; import android.text.Html; import android.view.LayoutInflater; import android.view.Menu; @@ -31,10 +33,17 @@ public class FilterActivity extends ActionBarActivity { private FiltersList filtersList; private Filter filter; + private RecyclerView mRecyclerView; + private RecyclerView.Adapter mAdapter; + private RecyclerView.LayoutManager mLayoutManager; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_filter); + mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view); + mLayoutManager = new LinearLayoutManager(this); + mRecyclerView.setLayoutManager(mLayoutManager); try { filtersList = FiltersList.getInstance(this); @@ -52,13 +61,14 @@ public class FilterActivity extends ActionBarActivity { setTitle(filter.getTitle()); final Activity activity = this; - final ListView itemsListView = (ListView) findViewById(R.id.filter_items_list); FeedLoaderAndSorter loaderAndSorter = new FeedLoaderAndSorter(filter); loaderAndSorter.getFilteredFeedItems(new VolleyFetcher(this), new FallibleListener, VolleyError>() { @Override public void onReceive(List data) { - FeedItemAdapter feedItemAdapter = new FeedItemAdapter(activity, R.layout.item_feeditem, data); - itemsListView.setAdapter(feedItemAdapter); + + FeedItemAdapter feedItemAdapter = new FeedItemAdapter(data); + mRecyclerView.setAdapter(feedItemAdapter); + mRecyclerView.setHasFixedSize(true); } @Override @@ -101,49 +111,72 @@ public class FilterActivity extends ActionBarActivity { /** * Custom ArrayAdapter to display Keywords */ - private static class FeedItemAdapter extends ArrayAdapter { - Context context; - int layoutResourceId; + private static class FeedItemAdapter extends RecyclerView.Adapter { List feedItems; - public FeedItemAdapter(Context context, int resource, List objects) { - super(context, resource, objects); - this.context = context; - layoutResourceId = resource; + public FeedItemAdapter(List objects) { feedItems = objects; } - @Override - public View getView(int position, View convertView, ViewGroup parent) { - View row = convertView; - KeywordHolder holder = null; - - if (row == null) { - LayoutInflater inflater = ((Activity) context).getLayoutInflater(); - row = inflater.inflate(layoutResourceId, parent, false); +// @Override +// public View getView(int position, View convertView, ViewGroup parent) { +// View row = convertView; +// KeywordHolder holder = null; +// +// if (row == null) { +// LayoutInflater inflater = ((Activity) context).getLayoutInflater(); +// row = inflater.inflate(layoutResourceId, parent, false); +// +// holder = new KeywordHolder(); +// holder.title = (TextView) row.findViewById(R.id.feeditem_title); +// holder.summary = (TextView) row.findViewById(R.id.feeditem_summary); +// +// row.setTag(holder); +// } else { +// holder = (KeywordHolder) row.getTag(); +// } +// +// FeedItem feedItem = feedItems.get(position); +// holder.title.setText(feedItem.getTitle()); +// holder.summary.setText(Html.fromHtml(feedItem.getDescription())); +// +// return row; +// } - holder = new KeywordHolder(); - holder.title = (TextView) row.findViewById(R.id.feeditem_title); - holder.summary = (TextView) row.findViewById(R.id.feeditem_summary); - - row.setTag(holder); - } else { - holder = (KeywordHolder) row.getTag(); - } + @Override + public KeywordHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View itemView = LayoutInflater. + from(parent.getContext()). + inflate(R.layout.item_feeditem, parent, false); + return new KeywordHolder(itemView); + } - FeedItem feedItem = feedItems.get(position); - holder.title.setText(feedItem.getTitle()); - holder.summary.setText(Html.fromHtml(feedItem.getDescription())); + @Override + public void onBindViewHolder(KeywordHolder holder, int position) { + FeedItem item = feedItems.get(position); + holder.title.setText(item.getTitle()); + holder.summary.setText(item.getDescription()); + } - return row; + @Override + public int getItemCount() { + return feedItems.size(); } /** * TextViews holder */ - private static class KeywordHolder { + static class KeywordHolder extends RecyclerView.ViewHolder { TextView title; TextView summary; + + public KeywordHolder(View itemView) { + super(itemView); + title = (TextView) itemView.findViewById(R.id.feeditem_title); + summary = (TextView) itemView.findViewById(R.id.feeditem_summary); + } } + + } } -- cgit v1.2.3