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が変更されたか、他の理由getSectionForPositionで、評価されるまでに、 cursor[columnIndex]がnullを返すと思います。

この未解決の問題によると、この状況はあなたが経験しているものと非常によく似たNPEを引き起こします

繰り返しますが、本当の問題は、投稿しなかったコードのどこかにあります。Alphabetindexerは、その状況をうまく処理していません。

于 2012-04-18T18:12:42.363 に答える