ListView con alfabetos a la derecha, como el iPhone. ¿Es posible?

Me gustaría saber si un ListView en Android tiene una opción para colocar alfabetos a la derecha como el paradigma de iPhone ListView, como a continuación

Introduzca aquí la descripción de la imagen

Si es así, ¿alguien puede proporcionarme códigos de muestra?

No estoy buscando el que tiene una superposición de alfabeto de ApisDemo pero uno exacto como el paradigma del iPhone. ¿Es posible?

He implementado somthing similar un tiempo atrás, así que he modificado mi actividad y puede echar un vistazo a continuación, lo siento no es muy bien comentado – espero que ayude!

public class AZIndexer extends Activity { ListView myListView; ArrayList<String> elements; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // elements String s = "MNBVCXZLKJHGFDSAQWERTYUIOP"; Random r = new Random(); elements = new ArrayList<String>(); 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); MyAZAdapter<String> adapter = new MyAZAdapter<String>( getApplicationContext(), android.R.layout.simple_list_item_1, elements); myListView.setAdapter(adapter); } class MyAZAdapter<T> extends ArrayAdapter<T> implements SectionIndexer { ArrayList<String> myElements; HashMap<String, Integer> azIndexer; String[] sections; public MyAZAdapter(Context context, int textViewResourceId, List<T> objects) { super(context, textViewResourceId, objects); myElements = (ArrayList<String>) objects; azIndexer = new HashMap<String, Integer>(); //stores the positions for the start of each letter int size = elements.size(); for (int i = size - 1; i >= 0; i--) { String element = elements.get(i); //We store the first letter of the word, and its index. azIndexer.put(element.substring(0, 1), i); } Set<String> keys = azIndexer.keySet(); // set of letters Iterator<String> it = keys.iterator(); ArrayList<String> keyList = new ArrayList<String>(); while (it.hasNext()) { String key = it.next(); keyList.add(key); } Collections.sort(keyList);//sort the keylist sections = new String[keyList.size()]; // simple conversion to array keyList.toArray(sections); } public int getPositionForSection(int section) { String letter = sections[section]; return azIndexer.get(letter); } public int getSectionForPosition(int position) { Log.v("getSectionForPosition", "called"); return 0; } public Object[] getSections() { return sections; // to string will be called to display the letter } } } 

Con xml como:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ListView android:id="@+id/myListView" android:layout_width="fill_parent" android:layout_height="fill_parent"> </ListView> </LinearLayout> 

Captura de pantalla:

Introduzca aquí la descripción de la imagen

Puede consultar este proyecto https://github.com/woozzu/IndexableListView . Aquí está la captura de pantalla Introduzca aquí la descripción de la imagen

Es posible que si está dispuesto a escribir el código, pero el desplazador rápido, como se muestra en la aplicación AOSP Contactos, es la forma que ofrece la plataforma de presentar una lista de índice de sección.

  • ¿Por qué mi onItemSelectedListener no se llama en un ListView?
  • ListView.addFooterView () no funciona si no hay elementos en listview
  • ¿Cómo resaltar el elemento ListView en el tacto?
  • La URL no se puede emitir a String
  • ListView de búsqueda múltiple
  • Mantener el elemento inferior de ListView visible cuando aparece el teclado
  • ¿Por qué isItemChecked () devuelve true cuando está en ActionMode?
  • ListView vacía después de volver al fragmento
  • Sincronizar 2 ListViews desplazándose
  • Cómo evitar que los elementos se dupliquen cuando se desplaza la vista de reciclador
  • ¿Cómo evito que los elementos ListView reciclados muestren contenido antiguo?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.