小编Gav*_*vin的帖子

"尝试调用虚拟方法"真正意味着什么?

我是一名初级Android开发人员,每天都会遇到很多错误及其解决方案.我注意到我很多次java.lang.NullPointerException: Attempt to invoke virtual method 'xxx' on a null object reference.Upto NullPointerException,听起来很熟悉,某些东西的价值为null,但问题从下一个短语开始.[请关注代码问题]

在我看来,我发现这个非常不清楚,因为Android工作室不像Eclipse只能说出Attempt to invoke virtual method 'xxx' on a null object reference任何问题,我很难知道我在哪里缺少点.无论是游标,数据库,arraylist还是你能想到的任何对象,像疯狂机器人这样的Android工作室总会给出这个错误.

任何人都可以解释一下这究竟是什么意思,在一般情况下我的方法应该是什么?我得到这个错误?

这是我在我的应用程序中遇到的一种奇怪的行为,它让我发疯.

这个功能很好

ArrayList<HashMap<String, String>> getAllRows() {

    Cursor c = db.query(TABLE_NAME, ALL_KEYS, null, null, null, null, null); // THIS LINE IS MY POINT

    //
     ...
    //

    c.close();

    return profilesArray;
}
Run Code Online (Sandbox Code Playgroud)

但另一个功能给我错误

java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.Cursor android.database.sqlite.SQLiteDatabase.query(java.lang.String, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String)' on a null object reference …

android nullpointerexception nullreferenceexception

5
推荐指数
1
解决办法
2万
查看次数

如何从特定项目位置开始显示列表视图

我有300首mp3歌曲的列表视图,假设歌曲52正在播放.所以我想下次当用户打开歌曲列表时,他前面的列表行必须从第52行开始(上下都是行).我试过用

public View getViewByPosition(int pos, ListView listView) {
    final int firstListItemPosition = listView.getFirstVisiblePosition();
    final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1;

    if (pos < firstListItemPosition || pos > lastListItemPosition ) {
        return listView.getAdapter().getView(pos, null, listView);
    } else {
        final int childIndex = pos - firstListItemPosition;
        return listView.getChildAt(childIndex);
    }
}
Run Code Online (Sandbox Code Playgroud)

并且

adapter.getItem(52);
Run Code Online (Sandbox Code Playgroud)

但两者都是毫无意义的方法,并没有带我去第52行.(这些方法是我使用的,但可能不是解决方案)而且我没有得到谷歌搜索的解决方案.如果你们能解决这个问题,请告诉我!

非常感谢你的聆听!

android adapter android-listview getview

3
推荐指数
1
解决办法
3828
查看次数