【问题标题】:Placement of Dialog box in android studio main activity of AndroidAndroid的android studio主要活动中对话框的放置
【发布时间】:2019-12-29 17:39:27
【问题描述】:

我想通过长按方法删除回收站视图项,长按时,应该会出现一个对话框,其中包含是和否。当我单击“是”时,该项目应该被删除。我的对话框代码...

 public static class DialogBox extends DialogFragment  {
    @NonNull
    @Override
    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
        AlertDialog.Builder builder=new AlertDialog.Builder(getActivity());
        builder.setTitle("Do you want to delete it?").setMessage("Confirmation Dialog")
                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                }).setNegativeButton("No", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {


            }
        });
        return builder.create();
    }
}

} 我的对话框删除按钮代码

 public void onDeleteItem(int position) {

            DialogBox dialogBox=new DialogBox();
            dialogBox.show(getSupportFragmentManager(),"Example Dialog");

            removeItem(position);
        }
    });

我应该怎么做才能通过将代码放在正确的位置轻松删除项目

【问题讨论】:

  • 你应该把removeItem调用放到Yes按钮点击监听器的onClick方法中。

标签: java android


【解决方案1】:

您可以使用此替代方案。 在这种情况下,您可以长按该项目,如果您按删除,您将获得删除选项,然后它将删除该项目,否则您可以按该项目的一侧取消。

 @Override
    public void onBindViewHolder(EmployeeListAdapter.ViewHolder holder, final int position) {


        holder.cardClick.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() {
            @Override
            public void onCreateContextMenu(ContextMenu contextMenu, View view, ContextMenu.ContextMenuInfo contextMenuInfo) {
                MenuItem delete = contextMenu.add(0, position, 0, "Delete");
                delete.setOnMenuItemClickListener(onDeleteMenu);
            }
        });

    }

     /*
     * Delete Menu
     * */
    private final MenuItem.OnMenuItemClickListener onDeleteMenu = new MenuItem.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            deleteTaskApi(IdList.get(item.getItemId() ));
            return true;
        }
    };

【讨论】:

    猜你喜欢
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    相关资源
    最近更新 更多