Android 传递_id的参数并更新SQLitedatabase

Android 传递_id的参数并更新SQLitedatabase,android,sqlite,android-listview,Android,Sqlite,Android Listview,我正在尝试使用行id作为where语句更新SQLite表。我从listview中显示的一行中获取行id,并使用以下语句传递给另一个活动: Cursor cursor = (Cursor) nurseTableAdapter.getItem((int)id); showAssignments.putExtra("Nurse", cursor.getInt(cursor.getColumnIndex("_id"))); 接收活动接收参数: nurse = extras.ge

我正在尝试使用行id作为where语句更新SQLite表。我从listview中显示的一行中获取行id,并使用以下语句传递给另一个活动:

Cursor cursor = (Cursor) nurseTableAdapter.getItem((int)id);
            showAssignments.putExtra("Nurse", cursor.getInt(cursor.getColumnIndex("_id")));
接收活动接收参数:

nurse = extras.getString("Nurse");
并将其作为参数传递给我的DbCommunicator类:

updateAssignments.updateNurseAssignments(listItemsArray, nurse);
我的DbCommunicator类使用它来执行以下操作:

public void updateNurseAssignments(String[] choices, String nurseId) {
    // set parameter variables
    //int nurseIdToInt = Integer.parseInt(nurseId);
    //String strFilter = "_id=" + nurseIdToInt;
    //String where = "_id=?";
    String[] whereArgs = {String.valueOf(nurseId)};
    Log.i(TAG, "value of whereArgs is " + whereArgs[0]);

    // set content values
    ContentValues cvUpdate = new ContentValues();
    cvUpdate.put(KEY_FIRST_ASSIGNMENT, choices[0]);
    cvUpdate.put(KEY_SECOND_ASSIGNMENT, choices[1]);
    cvUpdate.put(KEY_THIRD_ASSIGNMENT, choices[2]);
    cvUpdate.put(KEY_FOURTH_ASSIGNMENT, choices[3]);
    cvUpdate.put(KEY_FIFTH_ASSIGNMENT, choices[4]);
    cvUpdate.put(KEY_SIXTH_ASSIGNMENT,  choices[5]);

    // update database
    sqldb.update(NURSE_TABLE, cvUpdate, KEY_NURSE_ROWID + "= ?", whereArgs); 
}

我没有收到任何错误,但表没有更新。我在Stack Overflow中只找到了一个类似的例子,并尝试在这里合并其中一些,但仍然存在问题。感谢您的建议。

您输入了Int,但使用了getString,是否检查了nurse的值?这是您想要的_id吗?我确信这个值就是我想要的,因为我直接从我想要的listview中获取它。这是一个整数自动递增。我的意思是你从发送者活动中收到的值。发送值是否相同?是的,它们都为空。我想我不想使用long id值,而是想使用getItemAtPosition4,因为这是我实际想要捕获和发送的_id值的位置。上面的代码试图解决这个问题,但我认为它对我正在尝试做的事情不起作用,因为我不认为列表活动中的Long id值与getItemAtPostion4相同。这有意义吗?'String nurse\u id=parent.getItemAtPosition4.toString;'传递android.database.sqlite.SQLiteCursor@44ea4c98的值。收到相同的值