2016-04-25 7 views
0

Ich möchte Abschnitt Header in der Listenansicht in Android wie das angehängte Bild hinzufügen. Kann mir jemand mit dem Code helfen? Ich möchte den Seitenabschnittsindexer nicht wie in Kontakten implementieren. imageImplementieren Abschnitt Indexer in der Listenansicht Android

Dies ist die custim Liste Adapter, die ich created-

public class CustomListAdapter extends BaseAdapter { 

    private Activity mContext; 
    private List<String> mList; 
    private LayoutInflater mLayoutInflater = null; 

    public CustomListAdapter(Activity context, List<String> list){ 
     mContext = context; 
     mList = list; 
     mLayoutInflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 



    @Override 
    public int getCount() { 
     return mList.size(); 
    } 


    @Override 
    public Object getItem(int pos) { 
     return mList.get(pos); 
    } 


    @Override 
    public long getItemId(int position) { 
     return position; 
    } 


    @Override 
    public View getDropDownView(int position, View convertView, ViewGroup parent) { 
     return super.getDropDownView(position, convertView, parent); 
    } 

    @Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 

     final ListViewHolder viewHolder; 

     if (convertView == null) { 
      LayoutInflater layoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      convertView = layoutInflater.inflate(R.layout.players_name_with_options, parent, false); 
      viewHolder = new ListViewHolder(convertView); 
      convertView.setTag(viewHolder); 
     } else { 
      viewHolder = (ListViewHolder) convertView.getTag(); 
     } 

     // Setting the name of the player on the text view 
     viewHolder.textView.setText(mList.get(position)); 
     return convertView; 
    } 


    // Class that contains the views as the variables 
    private class ListViewHolder { 

     TextView textView; 

     // Constructor of the class 
     public ListViewHolder(View item) { 

      // Initialising the text view and the spinner 
      textView = (TextView) item.findViewById(R.id.list_textView); 
     } 
    } 
} 

Ich Initialisierung dieses ArrayAdapter und dann die Namen der Spieler haben. Ich möchte, dass, wenn der Name hinzugefügt wird, der Sektions-Header erstellt wird und der Name des Players unter dem Header wie das Bild, das ich angehängt habe, gesetzt werden soll.

+0

können Sie teilen, was Sie bisher tun versucht? –

+0

Ich habe den Beitrag bearbeitet. Bitte beachten Sie – Ahmad

+0

Erstellen Sie 2 verschiedene Ansichten für Ihre Artikel und Artikelkopf. Verwenden Sie dann die Methode "getItemViewType (int position)", um den Indexer oder das Element beim Aufblasen einer Ansicht festzulegen und die Daten in der Methode "getView()" entsprechend zu binden. – Apurva

Antwort

0

Dafür stehen viele Bibliotheken zur Verfügung. Hoffe der folgende Link wird Ihnen helfen, herauszufinden, was Sie brauchen.

  1. pinned-section-listview
  2. Example 1
  3. Example 2
+0

In meinem Fall funktioniert nicht. Wenn ich also einen Player hinzufüge, erstellt er dafür einen neuen Header. Die Spieler, deren Name mit demselben Alphabet beginnt, sollten unter einer Kopfzeile stehen. – Ahmad

+0

@Ahmad :: was bedeutet, dass alle Spieler beginnen mit A muss unter A Abschnitt rechts sein? – Jeevanandhan

+0

Ja. Das ist das, was ich benötige. Können Sie mir irgendeinen Code zur Verfügung stellen? Danke – Ahmad