我应该编写哪些代码来删除列表项以及使用上下文菜单从数据库中删除

时间:2012-10-30 16:06:52

标签: android listview contextmenu

在我的代码中,我想从列表视图和数据库中删除所选项目。我正在使用上下文菜单。我正在获得职位列表。

CODE:

public boolean onContextItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
    AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item
            .getMenuInfo();
    // Track track = (Track)mAdapter.getItem(info.position);
    switch (item.getItemId()) {
    case R.id.delete:
        Toast.makeText(getApplicationContext(),
                "Deleted" + menuInfo.position, Toast.LENGTH_LONG).show();
        // delete(menuInfo.id);

        return true;
    case R.id.add:
        Toast.makeText(getApplicationContext(), "Add Successfully",
                Toast.LENGTH_LONG).show();
        return true;
    case R.id.view:
        Toast.makeText(getApplicationContext(), "Viewed", Toast.LENGTH_LONG)
                .show();

    default:
        Toast.makeText(getApplicationContext(), "HI", Toast.LENGTH_LONG)
                .show();
    }
    return super.onContextItemSelected(item);
}

enter image description here

我只获得位置但找不到图像中的名称,描述,日期和金钱。我怎样才能找到其中一个,这样通过使用名称日期或金钱,我可以从列表视图和数据库中删除列表。

2 个答案:

答案 0 :(得分:2)

如果要删除记录,则不需要任何信息,您只需要数据库中记录的行ID,您可以使用{从上下文菜单中获取该信息。 {1}}方法中的{1}}。

示例:

menuInfo.id

删除方法(可能在您的数据库助手类中):

onContextItemSelected

答案 1 :(得分:0)

看我之前遇到过同样的问题

所以我的解决方案是

View yourView; 

        public void onCreateContextMenu(ContextMenu menu, View v,
                ContextMenuInfo menuInfo) {
            // TODO Auto-generated method stub

            yourView = (TableRow) v; // here you can have your own view in my case i have Table row
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.table_row_menu, menu);  

        }

进一步获得视图后,您将在与视图相关联的 tag 的帮助下获取信息