撤销listview onbackpressed中的更改



我有一个包含产品列表的列表视图,在单击列表项时,列表详细信息打开。列表项包含毛重、净重等值。

在列表项目详细信息页面的顶部,我有一个交叉按钮而不是后退按钮,单击该按钮将打开一个对话框,询问"您是否要保存更改",并带有是或否按钮。

在按YES时,我能够保存列表视图中的更改,但在按NO时,无法撤消更改。

下面是显示对话框的代码:
@Override
    public boolean onBackPressed() {
        final AlertDialog alert = new AlertDialog.Builder(getContext()).create();
        alert.setMessage(getContext().getString(R.string.save_activity));
        alert.setCancelable(false);
        alert.setButton(getContext().getString(R.string.strYes), new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                    saveAndClose();
            }
        });
        alert.setButton2(getContext().getString(R.string.strNo), new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                alert.dismiss();
                ((Activity)getContext()).finish();
            }
        });
        alert.show();
        return true;
    }

同样,我尝试创建一个具有不同引用的数组列表,并尝试设置值。

但似乎行不通。

请提供相应的解决方案

有一个简单的方法可以做到这一点

假设你有一个Product类

public class Product{
    private boolean currentState;
    private boolean previosState;
}

当用户点击交叉按钮时保持currentState,但不要触摸previousState

现在在是或否选择时,按是考虑currentState,按否考虑previosState

相关内容

  • 没有找到相关文章

最新更新