使用AlphabetIndexer获取NullPointerException

时间:2012-04-18 17:06:20

标签: android

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内部的东西,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

你应该发布更多的代码来确认这一点,但是我猜你的光标已经改变,或者其他原因,游标[columnIndex]返回null ,到时候{{1被评估。

根据this outstanding issue,这种情况将触发与您正在经历的NPE非常相似的NPE

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