2012-04-18 77 views
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); 

在我的設備我的應用程序崩潰,問題是:獲得NullPointerException異常與AlphabetIndexer

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內部,我該如何解決這個問題?

+0

檢查AlphabetIndexer.java:128是什麼? – 2012-04-18 17:10:48

+0

這是AlphabetIndexer的來源。 – 2012-04-18 17:13:48

+0

在那個腳本語言中128行包含了什麼 – 2012-04-18 17:15:38

回答

0

你或許應該發佈更多的代碼來證實這一點,但我猜你cursos已經改變,或某些其他原因光標[columnIndex]返回null,通過getSectionForPosition評估的時間。

根據this outstanding issue,這種情況會引發非常類似NPE什麼您遇到

再次,真正的問題是在什麼地方,你沒有職位的代碼。 Alphabetindexer並沒有很好地處理這種情況。