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); setContentView(R.layout.main_layout); 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 SimpleAdapter(this, list, R.layout.list_item, new String[] { "char", "label" }, new int[] { R.id.charText, R.id.labelText })); final Button btn = (Button) findViewById(R.id.button); final EditText txt = (EditText) findViewById(R.id.edit); btn.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { cmgr.setText(txt.getText()); Toast.makeText(getApplicationContext(), "Copied to clipboard", Toast.LENGTH_SHORT).show(); } }); final 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); txt.append(new String(Character.toChars(it.getCodePoint()))); } }); } }