0

我有一个表,它是根据存在的数据量动态构建的,如果有的话。

我希望能够长按表格行上的任意位置,以便能够获得一些删除或编辑等选项。这可能吗?请记住,我需要在不将任何 XML 设置为动态构建的情况下完成所有这些操作。

这与我想要实现的目标有关吗?

@override

public boolean onKeyLongPress(int keyCode, KeyEvent event) {

    if (keyCode == KeyEvent.KEYCODE_BACK) 
    {
        // do your stuff here
        return true;
    }
    return super.onKeyLongPress(keyCode, event);
}
`

任何建议表示赞赏。

4

2 回答 2

0

这是我从 Mark Murphy 的书中改编的一些示例代码。我的列表基于数据库。

private AdapterView.OnItemClickListener onListClick=new AdapterView.OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent,View view, int position,long id) {
        String selection= "_id=" + String.valueOf(id);
        Cursor c = db.query("commentlist", columns, selection, null, null, null, null);
        c.moveToFirst();
        checkDelete(c.getLong(0),c.getString(1));
    }
};
private void checkDelete(final long id, final String record) {
    AlertDialog.Builder builder=new AlertDialog.Builder(this);
    builder
        .setTitle("Delete task")
        .setMessage("Do you want to delete this task " + record + " ?")
        .setNegativeButton("No", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dlg, int sumthin) {
            }
        })
        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dlg, int sumthin) {
            db.execSQL("DELETE FROM commentlist WHERE _id=" + id);
            model.requery();
            }
        })
        .show();
    }
于 2011-11-19T17:26:57.187 回答
0

将上下文菜单注册到动态创建的 Table Row 。

调用registerForContextMenu(tableRow)和覆盖onCreateContextMenu(ContextMenu, View, ContextMenu.ContextMenuInfo). 阅读 上下文菜单

于 2011-11-19T17:45:08.667 回答