Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么我要接收空对象引用?_Android_Sql_Null - Fatal编程技术网

Android 为什么我要接收空对象引用?

Android 为什么我要接收空对象引用?,android,sql,null,Android,Sql,Null,我正在尝试对由SQL填充的RecylcerView实现拖放功能。我目前正试图通过调用以下方法来交换2x列表元素的位置: 我正在调用日志,并已确认fromPosition和toPosition变量是正确的;那么为什么我在LogCat中收到空对象引用的错误,以及如何解决它不为空? ListAdapter: DBHelper: LogCat错误消息: 在代码中,dbHelper对象为空。您应该首先初始化它。这可能是因为您没有初始化DbHelper。在构造函数中的某个地方,使用 private-DbHe

我正在尝试对由SQL填充的RecylcerView实现拖放功能。我目前正试图通过调用以下方法来交换2x列表元素的位置:

我正在调用日志,并已确认fromPosition和toPosition变量是正确的;那么为什么我在LogCat中收到空对象引用的错误,以及如何解决它不为空?

ListAdapter: DBHelper: LogCat错误消息:
在代码中,
dbHelper
对象为空。您应该首先初始化它。

这可能是因为您没有初始化DbHelper。在构造函数中的某个地方,使用
private-DbHelper-DbHelper

dbHelper=newdbhelper()

我无法在您给定的代码中证明这一点。但是因为ErrorStackTrace,我认为在onimmove()中调用dbHelper对象时,它是未初始化的。调用dbHelper时,您应该检查它是否为null。

dbHelper对象为null。是的,谢谢,您能否将您的评论作为答案,以便我标记此问题已解决?
public boolean onItemMove(int fromPosition, int toPosition) {
        Log.d(TAG, fromPosition + "");
        Log.d(TAG, toPosition + "");
        dbHelper.updateOrder(fromPosition, toPosition);
        dbHelper.updateOrder(toPosition, fromPosition);


        notifyItemMoved(fromPosition, toPosition);
        return true;
    }
public void updateOrder(int fromPosition, int toPosition) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues cv = new ContentValues();
        cv.put(SORT_ID, toPosition);
        db.update(TABLE_USERdETAIL, cv, "_id="+fromPosition, null);
    }
Process: mackinnoninc.packmule, PID: 17423
                                                                       java.lang.NullPointerException: Attempt to invoke virtual method 'void mackinnoninc.packmule.DbHelper.updateOrder(long, int)' on a null object reference
                                                                           at mackinnoninc.packmule.ListAdapter.onItemMove(ListAdapter.java:102)
                                                                           at mackinnoninc.packmule.SimpleItemTouchHelperCallback.onMove(SimpleItemTouchHelperCallback.java:34)
                                                                           at android.support.v7.widget.helper.ItemTouchHelper.moveIfNecessary(ItemTouchHelper.java:852)
                                                                           at android.support.v7.widget.helper.ItemTouchHelper.access$100(ItemTouchHelper.java:76)
                                                                           at android.support.v7.widget.helper.ItemTouchHelper$2.onTouchEvent(ItemTouchHelper.java:376)
                                                                           at android.support.v7.widget.RecyclerView.dispatchOnItemTouch(RecyclerView.java:2464)
                                                                           at android.support.v7.widget.RecyclerView.onTouchEvent(RecyclerView.java:2607)
                                                                           at android.view.View.dispatchTouchEvent(View.java:9303)
                                                                           at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2549)
                                                                           at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2240)
                                                                           at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
                                                                           at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
                                                                           at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
                                                                           at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
                                                                           at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
                                                                           at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
                                                                           at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
                                                                           at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
                                                                           at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
                                                                           at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
                                                                           at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
                                                                           at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
                                                                           at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2403)
                                                                           at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1737)
                                                                           at android.app.Activity.dispatchTouchEvent(Activity.java:2775)
                                                                           at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:63)
                                                                           at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2364)
                                                                           at android.view.View.dispatchPointerEvent(View.java:9523)
                                                                           at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4242)
                                                                           at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4108)
                                                                           at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3654)
                                                                           at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3707)
                                                                           at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3673)
                                                                           at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3799)
                                                                           at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3681)
                                                                           at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3856)
                                                                           at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3654)
                                                                           at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3707)
                                                                           at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3673)
                                                                           at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3681)
                                                                           at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3654)
                                                                           at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5969)
                                                                           at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5908)
                                                                           at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5869)
                                                                           at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6072)
                                                                           at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:192)
                                                                           at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
                                                                           at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:183)
                                                                        at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.j