2010-11-07 33 views
9

Ai đó có thể cho tôi xem ví dụ về cách sử dụng AlphabetIndexer với Bộ điều hợp Tuỳ chỉnh sử dụng getView không? Tôi có nó làm việc với một bộ chuyển đổi tiêu chuẩn, nhưng không có đầu mối làm thế nào để thực hiện nó với một adapter tùy chỉnh.AlphabetIndexer với Bộ điều hợp Tùy chỉnh

Cảm ơn

+0

Tôi đang làm một cái gì đó tương tự ở đây http://stackoverflow.com/questions/10224233/alphabetindexer-with-custom-adapter-managed-by-loadermanager – toobsco42

+0

Ở đây tôi đã tạo một ứng dụng mẫu trong Android, Tương tự như Iphone Alphabatical Lập chỉ mục http://mukeshyadav4u.blogspot.in/2012/06/alphabatical-indexer-in-android.html –

Trả lời

7

Hi đây là cách tôi sử dụng AlphaIndexer

private final class ContactListItemAdapter extends ResourceCursorAdapter 
     implements SectionIndexer { 
    AlphabetIndexer alphaIndexer; 

    public ContactListItemAdapter(Context context, int layout, Cursor c) { 
     super(context, layout, c); 
     alphaIndexer = new AlphabetIndexer(c, NAME_COLUMN_INDEX, 
       " ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
      .... 
      a normal getView 
      .... 
    } 

    public int getPositionForSection(int section) { 
     return alphaIndexer.getPositionForSection(section); 
    } 

    public int getSectionForPosition(int position) { 
     return alphaIndexer.getSectionForPosition(position); 
    } 

    public Object[] getSections() { 
     return alphaIndexer.getSections(); 
    } 
} 

NAME_COLUMN_INDEX là chỉ số của cột trong database schema.

...

Nếu đây không phải là những gì bạn cần, vui lòng thêm một số mã về lớp học nên mở rộng v.v.

Dù sao tôi hy vọng điều này sẽ hữu ích.

+2

Xin chào, tôi muốn hỏi: tôi có thể làm gì nếu tôi không nhận được mặt hàng của tôi từ cơ sở dữ liệu – MoHaKa

8

Nếu bạn đang sử dụng một LoaderManager để quản lý con trỏ của adapter của bạn, bạn sẽ muốn thực hiện một điều chỉnh nhỏ và ghi đè adapter của bạn phương pháp swapCursor:

public Cursor swapCursor(Cursor c) { 
    // Create our indexer 
    if (c != null) { 
     mIndexer = new AlphabetIndexer(c, c.getColumnIndex(Books.TITLE), 
       " ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 
    } 
    return super.swapCursor(c); 
} 

Mọi thứ khác vẫn giống như @vsm mô tả.

+0

bạn vui lòng cung cấp tôi một bản demo để thực hiện nó ??? –

+0

Một bản demo để thực hiện những gì? – twaddington

+0

Thực tế tôi muốn thực hiện AlphabetIndexer và Fast Scroll theo tìm kiếm trong bảng chữ cái giống như Danh sách liên hệ trong Android. Vậy làm thế nào để làm điều đó ?? –

Các vấn đề liên quan