diff options
Diffstat (limited to 'src/org/madore/android/unicodeMap/UnicodeArrayAdapter.java')
-rw-r--r-- | src/org/madore/android/unicodeMap/UnicodeArrayAdapter.java | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/org/madore/android/unicodeMap/UnicodeArrayAdapter.java b/src/org/madore/android/unicodeMap/UnicodeArrayAdapter.java new file mode 100644 index 0000000..691d525 --- /dev/null +++ b/src/org/madore/android/unicodeMap/UnicodeArrayAdapter.java @@ -0,0 +1,65 @@ +package org.madore.android.unicodeMap; + +import java.util.List; +import android.content.Context; +import android.view.View; +import android.view.ViewGroup; +import android.view.LayoutInflater; +import android.widget.ArrayAdapter; +import android.widget.TextView; + +public class UnicodeArrayAdapter + extends ArrayAdapter<UnicodeDisplayable> { + + protected Context context; + protected LayoutInflater inflater; + + public UnicodeArrayAdapter(Context context) { + super(context, 0); + this.context = context; + this.inflater + = (LayoutInflater)context + .getSystemService(Context.LAYOUT_INFLATER_SERVICE); + } + + public UnicodeArrayAdapter(Context context, + List<UnicodeDisplayable> objects) { + super(context, 0, objects); + this.context = context; + this.inflater + = (LayoutInflater)context + .getSystemService(Context.LAYOUT_INFLATER_SERVICE); + } + + public View getView(int position, View convertView, ViewGroup parent) { + UnicodeDisplayable item = this.getItem(position); + View view = null; + if ( item instanceof UnicodeCharacter ) { + View charTextView = null; View labelTextView = null; + if ( convertView != null ) { + charTextView = convertView.findViewById(R.id.charText); + labelTextView = convertView.findViewById(R.id.labelText); + if ( charTextView != null && labelTextView != null ) + view = convertView; + } + if ( view == null ) { + view = inflater.inflate(R.layout.char_item, parent, false); + charTextView = view.findViewById(R.id.charText); + labelTextView = view.findViewById(R.id.labelText); + } + ((TextView)charTextView).setText(((UnicodeCharacter)item).getChar()); + ((TextView)labelTextView).setText(((UnicodeCharacter)item).getLabel()); + } else if ( item instanceof UnicodeCharacter.Range ) { + if ( convertView != null + && convertView instanceof TextView ) { + view = convertView; + } + if ( view == null ) + view = inflater.inflate(R.layout.range_item, parent, false); + ((TextView)view).setText(((UnicodeCharacter.Range)item).getDescr()); + } else + throw new AssertionError("unknown UnicodeDisplayable"); + return view; + } + +} |