Android:上下文菜单到警报对话框

时间:2011-12-12 06:58:01

标签: android alertdialog

我需要更改什么才能将此显示设置为警告对话框?

@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的初学者,所以我还是不知道如何实现一些东西。我希望它显示为警告对话框。目前用户需要longkeypress来激活删除。但是,我想将其作为警告对话框提示,并为用户提供选择,如果他想要真正删除它。

2 个答案:

答案 0 :(得分:3)

在您的情况下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();

您需要将删除逻辑放在OK单击侦听器中。

答案 1 :(得分:1)

您只需要实现以下功能。它会工作。

@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;
        }
    });
}

}