0
I'm having a hard time here with AlphabetIndexer here. I'm trying to use it to produce sectioned listview:

private static final String sAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";

private AlphabetIndexer mIndexer;

    public ContactAlphabetizedAdapter(Context context, int layout,
            Cursor cursor, String[] from, int[] to) {
        super(context, layout, cursor, from, to);

        mIndexer = new AlphabetIndexer(cursor, cursor.getColumnIndexOrThrow(ContactsContract.Data.DISPLAY_NAME), sAlphabet);

在我的设备上,我的应用程序崩溃了,问题是:

    E/AndroidRuntime(5188): Caused by: java.lang.NullPointerException
    E/AndroidRuntime(5188):     at android.widget.AlphabetIndexer.compare(AlphabetIndexer.java:128)
    E/AndroidRuntime(5188):     at android.widget.AlphabetIndexer.getSectionForPosition(AlphabetIndexer.java:265)

这是 AlphabetIndexer 内部的问题,我该如何解决?

4

1 回答 1

0

您可能应该发布更多代码以确认这一点,但我猜您 cursos 已更改,或者由于某些其他原因 cursor[columnIndex] 返回 null,在getSectionForPosition评估时。

根据这个悬而未决的问题,这种情况将触发与您遇到的非常相似的 NPE

同样,真正的问题出在您未发布的代码中。Alphabetindexer 只是没有很好地处理这种情况。

于 2012-04-18T18:12:42.363 回答