撤消列表视图中的更改onbackpressed

时间:2016-10-12 09:32:03

标签: android 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;

    }

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

但似乎没有用。

请为此提供任何解决方案。

1 个答案:

答案 0 :(得分:1)

有一种简单的方法可以实现这个目标

让我们说你有一个产品类

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

当用户点击十字按钮但未触及 previousState 时,保持 currentState

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