aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/CacheListSpinnerAdapter.java
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2014-05-25 08:18:00 +0200
committerBananeweizen <bananeweizen@gmx.de>2014-05-25 08:18:00 +0200
commit288273ab3e219064ea6e6fc6f3454262223d717d (patch)
tree7493b659d8078c783eaed8f19a39e4bf9af68ea6 /main/src/cgeo/geocaching/CacheListSpinnerAdapter.java
parenta6a8a5bc2ccaba34e79cba31a5bd7305fe3ff07a (diff)
downloadcgeo-288273ab3e219064ea6e6fc6f3454262223d717d.zip
cgeo-288273ab3e219064ea6e6fc6f3454262223d717d.tar.gz
cgeo-288273ab3e219064ea6e6fc6f3454262223d717d.tar.bz2
refactoring: make list spinner adapter top level class
Our classes are way to big, we should extract as many of the static sub classes as possible.
Diffstat (limited to 'main/src/cgeo/geocaching/CacheListSpinnerAdapter.java')
-rw-r--r--main/src/cgeo/geocaching/CacheListSpinnerAdapter.java68
1 files changed, 68 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/CacheListSpinnerAdapter.java b/main/src/cgeo/geocaching/CacheListSpinnerAdapter.java
new file mode 100644
index 0000000..5ace70e
--- /dev/null
+++ b/main/src/cgeo/geocaching/CacheListSpinnerAdapter.java
@@ -0,0 +1,68 @@
+package cgeo.geocaching;
+
+import cgeo.geocaching.list.AbstractList;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.TextView;
+
+class CacheListSpinnerAdapter extends ArrayAdapter<AbstractList> {
+
+ static class ViewHolder {
+ TextView title;
+ TextView subtitle;
+ }
+
+ private final Context mContext;
+
+ public CacheListSpinnerAdapter(Context context, int resource) {
+ super(context, resource);
+ mContext = context;
+ }
+
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ return getCustomView(position, convertView, parent);
+ }
+
+
+ @Override
+ public View getDropDownView(int position, View convertView, ViewGroup parent) {
+ return getCustomView(position, convertView, parent);
+ }
+
+ public View getCustomView(final int position, final View convertView, final ViewGroup parent) {
+
+ View resultView = convertView;
+ LayoutInflater inflater =
+ (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+
+
+ CacheListSpinnerAdapter.ViewHolder holder;
+ if (resultView == null) {
+ resultView = inflater.inflate(R.layout.cachelist_spinneritem, parent, false);
+ holder = new ViewHolder();
+ holder.title = (TextView) resultView.findViewById(android.R.id.text1);
+ holder.subtitle = (TextView) resultView.findViewById(android.R.id.text2);
+
+ resultView.setTag(holder);
+ } else {
+ holder = (CacheListSpinnerAdapter.ViewHolder) resultView.getTag();
+ }
+
+ AbstractList list = getItem(position);
+ holder.title.setText(list.getTitle());
+ if (list.getCount() >= 0) {
+ holder.subtitle.setVisibility(View.VISIBLE);
+ holder.subtitle.setText(CacheListActivity.getCacheNumberString(mContext.getResources(),list.getCount()));
+ } else {
+ holder.subtitle.setVisibility(View.GONE);
+ }
+
+ return resultView;
+ }
+} \ No newline at end of file