일단 메인엑티비티에 저장 버튼과 삭제 버튼이 있는데 삭제버튼을 누르면 현재 보고있는 프래그먼트를 만들어둔 원상태로 돌리고 싶은데 잘 안됩니다... 프래그먼트는 3개가 있고 R.id.frame에 각 각 add 후 각 A,B,C 버튼 누를 시 나오게 show hide hide 이런 식으로 해놨습니다. 삭제 버튼 누르면 밑에 코드 다이얼로그가 나옵니다.
각 버튼 이름을 save 버튼을 누르면 다이얼로그로 바로 수정하게 하려고 sharedpreference를 사용했습니다.
문제는 A가 눌렸다라는 걸 value로 구분하고 삭제 버튼 누르면 다이얼로그로 진짜 삭제할거냐 띄우고, A만 처음 상태 B,C는 사용하던거 그대로 두고 싶은데 이걸 어떻게 해야할까요?? 여러분들의 조언이 필요합니다. 하...비기너라 열심히 하고는 있는데 참 어렵네요. 잡힐듯 말듯 근데 더럽게 안됩니다;;;
밑에 코드는 지금 하다가 도저히 안돼서 일단 올려봅니다. 접근 방식을 다르게 해야하나봐요..
public void show_delete_dialog(){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("삭제하시겠습니까?");
builder.setPositiveButton("삭제",
new DialogInterface.OnClickListener() {
@SuppressLint("CommitTransaction")
@Override
public void onClick(DialogInterface dialog, int which) {
Frag1 fragment1 = new Frag1();
Frag2 fragment2 = new Frag2();
Frag3 fragment3 = new Frag3();
sharedPreferences = getSharedPreferences("file",MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
if (value == 1) {
getFragmentManager().beginTransaction().remove(fragment1).commit();
getFragmentManager().beginTransaction().show(fragment1);
getFragmentManager().beginTransaction().hide(fragment2);
getFragmentManager().beginTransaction().hide(fragment3);
sharedPreferences = getSharedPreferences("file", MODE_PRIVATE);
editor = sharedPreferences.edit();
editor.remove("form1_title");
form_button1.setText("서식A");
editor.apply();
} else if (value == 2) {
getFragmentManager().beginTransaction().replace(R.id.frame,fragment2).commit();
sharedPreferences = getSharedPreferences("file", MODE_PRIVATE);
editor = sharedPreferences.edit();
editor.remove("form2_title");
form_button2.setText(sharedPreferences.getString("form2_title", "서식B"));
editor.apply();
} else if (value == 3) {
getFragmentManager().beginTransaction().replace(R.id.frame, fragment3).commit();
sharedPreferences = getSharedPreferences("file", MODE_PRIVATE);
editor = sharedPreferences.edit();
editor.remove("form3_title");
form_button3.setText(sharedPreferences.getString("form3_title", "서식C"));
editor.apply();
}
Toast.makeText(getApplicationContext(),"삭제 완료", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("취소", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.show();
}