【发布时间】:2016-10-07 00:15:23
【问题描述】:
所以现在我有一个自定义列表视图适配器,当用户选择一个项目时,它会添加另一行。问题是,行中的每个项目都应该有一个修改按钮,他们可以在其中选择添加任何修改(可以选择多个修改)
This is a food ordering app that when the item is selected, there should be another button in the list labeled "Modify", where a pop-up comes up and allows the user to choose what modification it wants by using checkbox. (“少盐”、“多酱”等)。每道菜的每个修改列表都是相同的。当用户退出弹出窗口并单击同一个修改按钮时,选中的复选框应保留在那里。
我最初创建了一个弹出类,其中选择按钮时,有一个意图跳到该弹出活动,但是我找不到自定义适配器和弹出活动之间的关系。我还尝试使用 AlertDialog 替换 Popup 窗口,但找不到保存所有选中项目并显示之前选择的项目的方法。
这是我的代码
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;
}
【问题讨论】: