添加对每个自定义列表视图项的修改

时间:2016-10-06 15:37:04

标签: android listview

所以现在我有一个自定义列表视图适配器,当用户选择一个项目时会添加另一行。问题是,行中的每个项目都应该有一个修改按钮,他们可以选择添加任何修改(可以选择多个修改)

这是一个食品订购应用程序,当选择该项目时,列表中应该有另一个标记为“修改”的按钮,其中会出现一个弹出窗口,允许用户使用复选框选择所需的修改。 (“少盐”,“更多酱”等)。每个菜单的每个修​​改列表都是相同的。当用户退出弹出窗口并单击相同的修改按钮时,选中的复选框应保留在那里。

我最初创建了一个Popup类,当选择该按钮时,有意图跳转到该Popup活动,但我找不到自定义适配器和Popup活动之间的关系。我还尝试使用AlertDialog替换弹出窗口,但找不到保存所有选中项目的方法,并显示之前选择的项目。

这是我的代码

    modifyBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

           AlertDialog.Builder builder = new AlertDialog.Builder(context);
           builder.setTitle("Modification");

            final CharSequence[] modify_items = orderClass.getModifyList()
                    .toArray(new CharSequence[orderClass.getModifyList().size()]);
            builder.setMultiChoiceItems(modify_items, null, new DialogInterface.OnMultiChoiceClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int indexSelected, boolean isChecked) {
                    if(isChecked){
                        selectedList.add(indexSelected);
                        selectedItems.set(position, selectedList);
                    }
                    else if(selectedList.contains(indexSelected)){
                        selectedList.remove(Integer.valueOf(indexSelected));
                        selectedItems.set(position, selectedList);
                    }
                }
            })
                    .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {

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

                        }
                    });
            AlertDialog dialog = builder.create();
            dialog.show();
            Log.d("dialog", "Showing dialog");


        }
    });


    return view;
}

1 个答案:

答案 0 :(得分:0)

您需要将数据放入持有者结构(它有一个包含变量的类) 那么你可以通过索引显示数据,而theres是显示的列表视图索引和数据索引之间的关系,所以当单击列表视图单元格时,你得到位置然后在结构中找到它并将其发布到另一个活动或其他任何内容修改它记住你必须声明一个标志来启动活动其他应用程序将崩溃我认为它的名为activtyoutofbound索引或类似的东西