2016-10-12 3 views
0

제품 목록이 들어있는 목록보기가 있고 목록 항목을 클릭하면 목록 세부 정보가 열립니다. 목록 항목에는 총중량, 순중량 등과 같은 값이 들어 있습니다.목록보기 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; 

    } 

, I는 다른 참조하여 어레이리스트 작성을 시도하여 값을 설정하는 것을 시도했다.

하지만 작동하지 않는 것 같습니다.

동일한 해결책을 제공해주십시오.

+0

귀하의 요구 사항을 언급하십시오 –

+0

당신은 무엇을 기대합니까? 사용자가 아니요를 누를 때만 알림을 닫고 현재 작업을 마칩니다. 실행 취소 코드가 없습니다. 물론 변경 사항을 실행 취소 할 수는 없습니다. – Joshua

+0

@ Joshua, 십자 버튼을 클릭하면 YES 또는 NO가있는 대화 상자가 나타납니다. YES 키를 누르면 입력 된 값이 목록에 저장되고 NO 키를 누르면 변경 사항이 저장되지 않아 목록에서 목록 세부 정보를 열 때 이전 값이 반영됩니다. –

답변

1

간단한 방법이

이의 당신이 사용자 십자가 버튼을 클릭하지만이 previousState을 만지지 마십시오 때 currentState를을 유지 제품 클래스를

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

이 있다고 할 수있다 달성했다.

이제 예 또는 아니오 선택에 눌러 예 currentState를 때 눌러 아니오 previosState을 고려을 고려할 때.

+0

빠른 응답에 감사드립니다. 더 자세히 설명해 주실 수 있습니까? –

+0

@StackQuest 거래가 간단합니다. currentState의 상태를 유지하고 previousState를 만지지 마십시오. 따라서 사용자가 YES를 누르면 현재 상태 선택을 고려하고 NO이면 previousState가이 변수로 아무 것도 변경하지 않고 쉽게 UNDO 효과를 얻을 수 있습니다. –

+0

고마워,하지만 똑같은, 내 질문에, 어떻게 내 목록보기의 이전 상태를 복원 할 물었다.? 내가 안드로이드에 대한 새로운 오전, 내가 다시 누르면 목록보기의 기본 동작을 알고 있지만 이전 상태를 저장하는 방법을 모르겠다 –

관련 문제