Android: контекстное меню для оповещения - PullRequest
1 голос
/ 12 декабря 2011

Что мне нужно изменить, чтобы сделать это отображение в диалоговом окне с предупреждением?

@Override
        public void onCreateContextMenu(ContextMenu menu, View v,
                ContextMenuInfo menuInfo) {
            super.onCreateContextMenu(menu, v, menuInfo);
            menu.add(0, DELETE_ID, 0, R.string.menu_delete);
        }

        @Override
        public boolean onContextItemSelected(MenuItem item) {
            switch(item.getItemId()) {
                case DELETE_ID:
                    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
                    mDbHelper.deleteNote(info.id);
                    fillData();
                    return true;
            }
            return super.onContextItemSelected(item);
        }

Я новичок в Android, поэтому я до сих пор не знаю, как реализовать некоторые вещи.Я хочу, чтобы это появилось как диалоговое окно предупреждения.В настоящее время пользователю необходимо нажать и удерживать клавишу, чтобы активировать удаление.Однако я хочу предложить его в виде диалогового окна с предупреждением, и у пользователя есть выбор, хочет ли он действительно его удалить или нет.

Ответы [ 2 ]

3 голосов
/ 12 декабря 2011

В вашем случае DELETE_ID сделайте это:

    new AlertDialog.Builder(this).setTitle("Confirm Delete")
        .setMessage("Do you want to delete this blank?")
        .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
                mDbHelper.deleteNote(info.id);
                fillData();
            }
        })
        .setNeutralButton("Cancel", null) // don't need to do anything but dismiss here
        .create()
        .show();

Вам необходимо поместить логику удаления в прослушиватель щелчка ОК.

1 голос
/ 26 июня 2013

Вам нужно только реализовать следующую функцию. Это будет работать.

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) 
{
Log.e(LOGTAG, "Tao menu");
if(v == expList)
{
    super.onCreateContextMenu(menu, v, menuInfo);
    //AdapterContextMenuInfo aInfo = (AdapterContextMenuInfo) menuInfo;

    // We know that each row in the adapter is a Map
    //HashMap map =  (HashMap) simpleAdpt.getItem(aInfo.position);
    menu.setHeaderTitle("Options");
    menu.add(1, 1, 1, "Reprint");
    menu.add(1, 2, 1, "Void");

    menu.getItem(0).setOnMenuItemClickListener(new OnMenuItemClickListener()
    {
        public boolean onMenuItemClick(MenuItem clickedItem)
        {

            return true;
        }
    });

    menu.getItem(1).setOnMenuItemClickListener(new OnMenuItemClickListener()
    {
        public boolean onMenuItemClick(MenuItem clickedItem)
        {

            return true;
        }
    });
}

}

...