【问题标题】:Getting NullPointerException with AlphabetIndexer使用 AlphabetIndexer 获取 NullPointerException
【发布时间】:2012-04-19 02:12:42
【问题描述】:
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 内部的问题,我该如何解决?

【问题讨论】:

  • 检查 AlphabetIndexer.java:128 的内容?
  • 这是 AlphabetIndexer 的来源。
  • 在那个字母来源中,第 128 行包含什么
  • 那是android类,反正我修改不了。
  • 这不是重点。看看那个时候alphabetindexer指的是什么可能会有所帮助。这样你就知道问题出在哪里了。

标签: android


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    • 2012-10-24
    相关资源
    最近更新 更多