строка стола длинное нажатие - PullRequest
0 голосов
/ 19 ноября 2011

У меня есть таблица, которая динамически строится на основе количества данных, если оно вообще есть.

Я хочу иметь возможность долго нажимать в любом месте строки таблицы, чтобы иметь возможность получить некоторые параметрыудалить или отредактировать и т.д. Возможно ли это?Помните, мне нужно делать все это, не устанавливая 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 голосов
/ 19 ноября 2011

Регистрация контекстного меню для динамически создаваемой строки таблицы.

вызов registerForContextMenu(tableRow) и переопределение onCreateContextMenu(ContextMenu, View, ContextMenu.ContextMenuInfo). Подробнее о Контекстное меню

0 голосов
/ 19 ноября 2011

Вот пример кода, который я адаптировал из книг Марка Мерфи. Мой список основан на базе данных.

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();
    }
...