From 9e7bb862397edf6ad4984b8f4f81ddbaa97b3260 Mon Sep 17 00:00:00 2001 From: Victor Date: Fri, 10 Jan 2014 16:53:24 +0200 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20ForumTopicAdapter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/adapters/ForumTopicAdapter.java | 61 +++++++++++++++++++ .../client/fragments/ForumFragment.java | 6 +- 2 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 src/com/annimon/client/adapters/ForumTopicAdapter.java diff --git a/src/com/annimon/client/adapters/ForumTopicAdapter.java b/src/com/annimon/client/adapters/ForumTopicAdapter.java new file mode 100644 index 0000000..16ab546 --- /dev/null +++ b/src/com/annimon/client/adapters/ForumTopicAdapter.java @@ -0,0 +1,61 @@ +package com.annimon.client.adapters; + +import java.util.List; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.TextView; +import com.annimon.client.R; +import com.annimon.client.entities.ForumTopic; + +public class ForumTopicAdapter extends BaseAdapter { + + private final LayoutInflater mInflater; + private final List mItems; + + public ForumTopicAdapter(Context context, List items) { + mInflater = LayoutInflater.from(context); + mItems = items; + } + + @Override + public int getCount() { + return mItems.size(); + } + + @Override + public Object getItem(int position) { + return mItems.get(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + final ViewHolder holder; + if (convertView == null) { + final int layoutId = R.layout.action_row_item; + convertView = mInflater.inflate(layoutId, parent, false); + + holder = new ViewHolder(); + holder.name = (TextView) convertView; + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + + final ForumTopic topic = mItems.get(position); + holder.name.setText(topic.getTitle()); + + return convertView; + } + + private static class ViewHolder { + TextView name; + } +} diff --git a/src/com/annimon/client/fragments/ForumFragment.java b/src/com/annimon/client/fragments/ForumFragment.java index 7167aa7..91e927f 100644 --- a/src/com/annimon/client/fragments/ForumFragment.java +++ b/src/com/annimon/client/fragments/ForumFragment.java @@ -9,6 +9,7 @@ import android.widget.ArrayAdapter; import com.annimon.client.adapters.ForumPostAdapter; import com.annimon.client.adapters.ForumSectionAdapter; +import com.annimon.client.adapters.ForumTopicAdapter; import com.annimon.client.entities.ForumPost; import com.annimon.client.entities.ForumSection; import com.annimon.client.entities.ForumTopic; @@ -54,15 +55,14 @@ public class ForumFragment extends ListFragment { @Override public void onLoadingFinished(List items) { - final ArrayAdapter adapter = new ArrayAdapter( - getActivity(), android.R.layout.simple_list_item_1, items); + final ForumTopicAdapter adapter = new ForumTopicAdapter(getActivity(), items); setListAdapter(adapter); getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { // Грузим список постов выбранной темы - ForumTopic topic = adapter.getItem(position); + ForumTopic topic = (ForumTopic) adapter.getItem(position); new ForumLoader(getActivity(), postListener).execute( ForumLoader.MODE_POSTS, topic.getId()); }