package org.madore.android.unicodeMap; import java.util.List; import java.util.ArrayList; import android.content.Context; import android.content.Intent; import android.content.res.AssetManager; import android.os.Bundle; import android.view.View; import android.widget.*; import android.text.ClipboardManager; import android.app.ListActivity; public final class UnicodeListActivity extends ListActivity { public static final String EXTRA_FROM = "org.madore.android.unicodeMap.range.From"; public static final String EXTRA_TO = "org.madore.android.unicodeMap.range.To"; protected UnicodeDatabase db; protected List list; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.db = new UnicodeDatabase(this); Intent intent = getIntent(); int from = intent.getIntExtra(EXTRA_FROM, 0); int to = intent.getIntExtra(EXTRA_TO, from+128); this.list = new ArrayList(db.countRange(from,to)); for ( UnicodeCharacter ch : db.getRange(from,to) ) list.add(ch); final ClipboardManager cmgr = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE); setListAdapter(new ArrayAdapter(this, R.layout.list_item, list)); ListView lv = getListView(); lv.setTextFilterEnabled(true); lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView parent, View view, int position, long id) { UnicodeCharacter it = (UnicodeCharacter)parent.getItemAtPosition(position); Toast.makeText(getApplicationContext(), it.getName(), Toast.LENGTH_SHORT).show(); cmgr.setText(new String(Character.toChars(it.getCodePoint()))); } }); } }