android-ibc-forum

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 7f74cf334317960ba2d349f95531f037e43fba96
parent f3f06670aeed9b141ee1c572cd74a859f289cb11
Author: Jan Dankert <devnull@localhost>
Date:   Tue, 24 Jan 2012 21:05:57 +0100

View wiederverwenden...

Diffstat:
src/de/mtbnews/android/adapter/ListEntryContentAdapter.java | 76+++++++++++++++++++++++++++++++++++++++++++++++++---------------------------
src/de/mtbnews/android/adapter/MapContentAdapter.java | 58+++++++++++++++++++++++++++++++++++++++++-----------------
2 files changed, 90 insertions(+), 44 deletions(-)

diff --git a/src/de/mtbnews/android/adapter/ListEntryContentAdapter.java b/src/de/mtbnews/android/adapter/ListEntryContentAdapter.java @@ -15,6 +15,7 @@ import android.widget.BaseAdapter; import android.widget.LinearLayout; import android.widget.TextView; import de.mtbnews.android.R; +import de.mtbnews.android.adapter.MapContentAdapter.ViewHolder; import de.mtbnews.android.tapatalk.wrapper.ListEntry; /** @@ -35,7 +36,8 @@ public class ListEntryContentAdapter extends BaseAdapter private List<? extends ListEntry> list; - public ListEntryContentAdapter(Context context, List<? extends ListEntry> list) + public ListEntryContentAdapter(Context context, + List<? extends ListEntry> list) { mContext = context; inflator = (LayoutInflater) context @@ -68,43 +70,63 @@ public class ListEntryContentAdapter extends BaseAdapter public View getView(int position, View convertView, ViewGroup parent) { - ListEntry e = list.get(position); + final ListEntry e = list.get(position); + final ViewHolder viewHolder; - final View view = inflator.inflate(R.layout.rss_item, null); - - // Linken Rand ggf. erhöhen. - // LinearLayout.LayoutParams params2 = new LinearLayout.LayoutParams( - // LinearLayout.LayoutParams.FILL_PARENT, - // LinearLayout.LayoutParams.WRAP_CONTENT); - // params2.setMargins(20,0,0,0); - // view.setLayoutParams(params2); + if (convertView == null) + { + convertView = inflator.inflate(R.layout.rss_item, null); + + // Linken Rand ggf. erhöhen. + // LinearLayout.LayoutParams params2 = new + // LinearLayout.LayoutParams( + // LinearLayout.LayoutParams.FILL_PARENT, + // LinearLayout.LayoutParams.WRAP_CONTENT); + // params2.setMargins(20,0,0,0); + // view.setLayoutParams(params2); + + viewHolder = new ViewHolder(); + + viewHolder.datum = (TextView) convertView + .findViewById(R.id.item_date); + viewHolder.name = (TextView) convertView + .findViewById(R.id.item_title); + viewHolder.desc = (TextView) convertView + .findViewById(R.id.item_description); + convertView.setTag(viewHolder); + } + else + { + viewHolder = (ViewHolder) convertView.getTag(); + } - TextView datum = (TextView) view.findViewById(R.id.item_date); if (e.getDate() != null) - { - datum.setText(DateFormat.getDateFormat(parent.getContext()).format( - e.getDate()) + viewHolder.datum.setText(DateFormat.getDateFormat( + parent.getContext()).format(e.getDate()) + " " + DateFormat.getTimeFormat(parent.getContext()).format( e.getDate())); - } else - { - datum.setEnabled(false); - } + viewHolder.datum.setEnabled(false); if (e.getTitle() != null) - { - TextView name = (TextView) view.findViewById(R.id.item_title); - name.setText(e.getTitle()); - } + viewHolder.name.setText(e.getTitle()); + else + viewHolder.name.setEnabled(false); if (e.getContent() != null) - { - TextView desc = (TextView) view.findViewById(R.id.item_description); - desc.setText(e.getContent()); - } + viewHolder.desc.setText(e.getContent()); + else + viewHolder.desc.setText(""); - return view; + return convertView; } + + static class ViewHolder + { + TextView datum; + TextView name; + TextView desc; + } + } diff --git a/src/de/mtbnews/android/adapter/MapContentAdapter.java b/src/de/mtbnews/android/adapter/MapContentAdapter.java @@ -77,46 +77,70 @@ public class MapContentAdapter extends BaseAdapter Map<String, Object> e = map.get(position); - final View view = inflator.inflate(R.layout.rss_item, null); + final ViewHolder viewHolder; - // Linken Rand ggf. erhöhen. - // LinearLayout.LayoutParams params2 = new LinearLayout.LayoutParams( - // LinearLayout.LayoutParams.FILL_PARENT, - // LinearLayout.LayoutParams.WRAP_CONTENT); - // params2.setMargins(20,0,0,0); - // view.setLayoutParams(params2); + if (convertView == null) + { + + convertView = inflator.inflate(R.layout.rss_item, null); + + // Linken Rand ggf. erhöhen. + // LinearLayout.LayoutParams params2 = new + // LinearLayout.LayoutParams( + // LinearLayout.LayoutParams.FILL_PARENT, + // LinearLayout.LayoutParams.WRAP_CONTENT); + // params2.setMargins(20,0,0,0); + // view.setLayoutParams(params2); + + viewHolder = new ViewHolder(); + viewHolder.datum = (TextView) convertView + .findViewById(R.id.item_date); + viewHolder.name = (TextView) convertView + .findViewById(R.id.item_title); + viewHolder.desc = (TextView) convertView + .findViewById(R.id.item_description); + convertView.setTag(viewHolder); + } + else + { + viewHolder = (ViewHolder) convertView.getTag(); + } - TextView datum = (TextView) view.findViewById(R.id.item_date); if (dateKey != null) { - datum.setText(DateFormat.getDateFormat(parent.getContext()).format( - e.get(dateKey)) + viewHolder.datum.setText(DateFormat.getDateFormat( + parent.getContext()).format(e.get(dateKey)) + " " + DateFormat.getTimeFormat(parent.getContext()).format( e.get(dateKey))); } else { - datum.setEnabled(false); + viewHolder.datum.setEnabled(false); } if (titleKey != null) { - TextView name = (TextView) view.findViewById(R.id.item_title); - name.setText(new String((byte[]) e.get(titleKey))); + viewHolder.name.setText(new String((byte[]) e.get(titleKey))); } if (descriptionKey != null) { - TextView desc = (TextView) view.findViewById(R.id.item_description); if (e.get(descriptionKey) != null) - desc.setText(new String((byte[]) e.get(descriptionKey))); + viewHolder.desc.setText(new String((byte[]) e.get(descriptionKey))); else - desc.setText(""); + viewHolder.desc.setText(""); } - return view; + return convertView; + } + + static class ViewHolder + { + TextView datum; + TextView name; + TextView desc; } }