Strict Standards: Non-static method utf_normalizer::nfc() should not be called statically in /www/htdocs/w006661d/anddev/includes/utf/utf_tools.php on line 1781
[phpBB Debug] PHP Notice: in file /bbc_download.php on line 73: Cannot modify header information - headers already sent by (output started at /includes/utf/utf_tools.php:1781)
[phpBB Debug] PHP Notice: in file /bbc_download.php on line 74: Cannot modify header information - headers already sent by (output started at /includes/utf/utf_tools.php:1781)
[phpBB Debug] PHP Notice: in file /bbc_download.php on line 75: Cannot modify header information - headers already sent by (output started at /includes/utf/utf_tools.php:1781)
[phpBB Debug] PHP Notice: in file /bbc_download.php on line 76: Cannot modify header information - headers already sent by (output started at /includes/utf/utf_tools.php:1781)
[phpBB Debug] PHP Notice: in file /bbc_download.php on line 77: Cannot modify header information - headers already sent by (output started at /includes/utf/utf_tools.php:1781)
[phpBB Debug] PHP Notice: in file /bbc_download.php on line 78: Cannot modify header information - headers already sent by (output started at /includes/utf/utf_tools.php:1781)
package ch.egsolutions.tutorial; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Random; import java.util.Set; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.util.Log; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.SectionIndexer; public class AlphabetIndexer extends Activity { ListView myListView; ArrayList elements; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // elements String s = "QWERTZUIOPASDFGHJKLYXCVBNM"; Random r = new Random(); elements = new ArrayList(); for (int i = 0; i < 300; i++) { elements.add(s.substring(r.nextInt(s.length()))); } Collections.sort(elements); // Must be sorted! // listview myListView = (ListView) findViewById(R.id.myListView); myListView.setFastScrollEnabled(true); MyIndexerAdapter adapter = new MyIndexerAdapter( getApplicationContext(), android.R.layout.simple_list_item_1, elements); myListView.setAdapter(adapter); } class MyIndexerAdapter extends ArrayAdapter implements SectionIndexer { ArrayList myElements; HashMap alphaIndexer; String[] sections; public MyIndexerAdapter(Context context, int textViewResourceId, List objects) { super(context, textViewResourceId, objects); myElements = (ArrayList) objects; // here is the tricky stuff alphaIndexer = new HashMap(); // in this hashmap we will store here the positions for // the sections int size = elements.size(); for (int i = size - 1; i >= 0; i--) { String element = elements.get(i); alphaIndexer.put(element.substring(0, 1), i); //We store the first letter of the word, and its index. //The Hashmap will replace the value for identical keys are putted in } // now we have an hashmap containing for each first-letter // sections(key), the index(value) in where this sections begins // we have now to build the sections(letters to be displayed) // array .it must contains the keys, and must (I do so...) be // ordered alphabetically Set keys = alphaIndexer.keySet(); // set of letters ...sets // cannot be sorted... Iterator it = keys.iterator(); ArrayList keyList = new ArrayList(); // list can be // sorted while (it.hasNext()) { String key = it.next(); keyList.add(key); } Collections.sort(keyList); sections = new String[keyList.size()]; // simple conversion to an // array of object keyList.toArray(sections); // ooOO00K ! } @Override public int getPositionForSection(int section) { // Log.v("getPositionForSection", ""+section); String letter = sections[section]; return alphaIndexer.get(letter); } @Override public int getSectionForPosition(int position) { // you will notice it will be never called (right?) Log.v("getSectionForPosition", "called"); return 0; } @Override public Object[] getSections() { return sections; // to string will be called each object, to display // the letter } } }