2

当我单击上下文操作栏中的删除时,我试图从数据库中删除一行。但是我无法获取长时间单击的项目的 id。我尝试使用setTag()传递 id,但它强制关闭长按该项目时的应用程序。

这是我的代码:

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {

        @Override
        public boolean onItemLongClick(AdapterView<?> parent, View view,
                int position, long id) {
            // TODO Auto-generated method stub
            startActionMode(modeCallBack);
            mActionMode.setTag(id);
            view.setSelected(true);
            return true;
        }
    });

这是onActionItemClicked

@Override
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
        // TODO Auto-generated method stub
        switch (item.getItemId()) {
        case R.id.item_delete:
            Mydatabase.execSQL("delete from TableName where _id="
                    + mode.getTag());
            mode.finish();
            break;
        }
        return true;
    }
};
4

1 回答 1

1

如果您有一个数组中的项目,并且您长按某个位置传递到

    public boolean onItemLongClick(AdapterView<?> parent, View view,
            int position, long id)

应该是数组中项目的索引,假设您将 ID 存储在其中,您可以简单地将该 ID 传递给 SQL 查询,该查询将从数据库中删除该项目。

于 2014-06-30T15:03:29.583 回答