表行长按

时间:2011-11-19 17:16:02

标签: android android-layout tableview tablerow long-press

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

我希望能够长按表格行的任何地方,以便能够获得一些删除或编辑等选项。这可能吗?请记住,我需要在不设置动态构建的任何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);
}
`

任何建议都表示赞赏。

2 个答案:

答案 0 :(得分: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();
    }

答案 1 :(得分:0)

注册上下文菜单以动态创建表行。

致电registerForContextMenu(tableRow)并覆盖onCreateContextMenu(ContextMenu, View, ContextMenu.ContextMenuInfo). 阅读Context Menu