我有一个包含产品列表的列表视图,在单击列表项时,列表详细信息打开。列表项包含毛重、净重等值。
在列表项目详细信息页面的顶部,我有一个交叉按钮而不是后退按钮,单击该按钮将打开一个对话框,询问"您是否要保存更改",并带有是或否按钮。
在按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