我有一个表,它根据存在的数据动态构建,如果有的话。
我希望能够长按表格行的任何地方,以便能够获得一些删除或编辑等选项。这可能吗?请记住,我需要在不设置动态构建的任何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);
}
`
任何建议都表示赞赏。
答案 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