diff options
Diffstat (limited to 'app/src/main/java')
-rw-r--r-- | app/src/main/java/org/rssin/android/FilterActivity.java | 95 |
1 files changed, 64 insertions, 31 deletions
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<List<FeedItem>, VolleyError>() { @Override public void onReceive(List<FeedItem> 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<FeedItem> { - Context context; - int layoutResourceId; + private static class FeedItemAdapter extends RecyclerView.Adapter<FeedItemAdapter.KeywordHolder> { List<FeedItem> feedItems; - public FeedItemAdapter(Context context, int resource, List<FeedItem> objects) { - super(context, resource, objects); - this.context = context; - layoutResourceId = resource; + public FeedItemAdapter(List<FeedItem> 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); + } } + + } } |