Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.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
Java Can';t通过Fragment-Android内部的上下文菜单从自定义ListView中删除数据库行_Java_Android_Database_Sqlite - Fatal编程技术网

Java Can';t通过Fragment-Android内部的上下文菜单从自定义ListView中删除数据库行

Java Can';t通过Fragment-Android内部的上下文菜单从自定义ListView中删除数据库行,java,android,database,sqlite,Java,Android,Database,Sqlite,我已经将数据添加到我的SQLite数据库中,它显示在listView内部。 但我想用关联菜单删除它。 显示关联菜单,但未删除数据 以下是我的代码示例: @Override public void onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); MenuInflater

我已经将数据添加到我的SQLite数据库中,它显示在listView内部。 但我想用关联菜单删除它。 显示关联菜单,但未删除数据

以下是我的代码示例:

@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    MenuInflater inflater = getActivity().getMenuInflater();
    inflater.inflate(R.menu.context_menu, menu);
}

@Override
public boolean onContextItemSelected(MenuItem item) {

    AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
    mDataBase = dbHelper.getWritableDatabase();

    switch(item.getItemId()) {
        case R.id.delete:

            mDataBase.delete("orderTable", "_id" + " =? ", new String[] {String.valueOf(info.id)});

            dbAdaper.setArrayMyData(selectAll());
            dbAdaper.notifyDataSetChanged();
            mDataBase.close();

    }
    return super.onContextItemSelected(item);
}
我发现info.id的值为0

 dbAdaper = new DBBasketAdapter(getActivity(), selectAll());
    listView.setAdapter(dbAdaper);
    registerForContextMenu(listView);

代码将ID转换为字符串

对于整数,不需要使用SQL参数;直接使用该值即可:

mDataBase.delete("orderTable", "_id = " + info.id, null);

我讨厌在语句中直接传递值!!!但我必须同意你的意见,因为处理
String[]wherergs
毫无价值。。。