목록보기가있는 조각이 있습니다. 내가 목록보기 위치를 누르면 클릭 된 항목의 위치를 보내는 조각 대화 상자가 열립니다. 그런 다음 목록보기에서 일부 데이터를 실시간으로 변경할 수 있습니다. 그러나 방향을 변경하면 (조각과 대화 상자 조각이 다른 레이아웃을 얻음) 라이브 변경이 더 이상 작동하지 않습니다. 제가 다른 단편으로 돌아 가면 다시 변화가 생기지 만 살지 않습니다.화면 방향 변경 후 대화 상자에서 ListView 업데이트
모두 true로 setRetainInstance를가집니다. 조각에 어댑터를 설정
:
documentPosListViewAdapter = new DocumentPosListViewAdapter(rootView.getContext());
listViewDocumentPos.setAdapter(documentPosListViewAdapter);
대화 청취자 :
@Override
public void onDataUpdated() {
currentWorkDocumentPos.calcPos();
session.getWorkDocumentPosDao().update(currentWorkDocumentPos);
currentWorkDocument.headCalc();
session.getWorkDocumentDao().update(currentWorkDocument);
refreshWorkDocumentLabels();
documentPosListViewAdapter.notifyDataSetChanged();
}
내가 대화 상자에서 뭐하는 거지 : 나는 화면을 변경할 때까지
currentWorkDocumentPos.setQuantity(quantity + 1);
String n_q = Double.toString(currentWorkDocumentPos.getQuantity());
editTextQuantity.setText(n_q);
editTextQuantity.setSelection(n_q.length());
myListener.onDataUpdated();
모든 작동 정위. 그렇다면 라이브 변화는 더 이상 발생하지 않습니다. 나는 그 documentPosListViewAdapter.notifyDataSetChanged();을 추측하고있다. doesent는 더 이상 그 일을하지 않는다. 그러나 나는 이유를 모르고있다.
편집 :
대화 상자에서나는이 두 부분을 가지고 대화 레이아웃이 normaly 회전 자체를 재현 :
setRetainInstance(true); and
@Override
public void onDestroyView() {
if (getDialog() != null && getRetainInstance())
getDialog().setDismissMessage(null);
super.onDestroyView();
}
을 그리고 mainFragment에 내가 (사실) setRetainInstance있다; 또한 화면을 회전하면 다시 생성됩니다. 메인 프래그먼트에서 setRetainInstance를 제거하면 2 가지가 발생합니다 : 1. 다른 프래그먼트를 열고 두 프래그먼트의 레이아웃을 바꿀 때 istelf와 겹쳐지는 것 같습니다 : S 2. listview에서 프래그먼트 대화 상자를 열고 대화 상자를 닫으면 클릭했을 때의 목록보기 위치
'setRetainInstance'를 true로 설정했지만 순환 게재시 레이아웃을 수동으로 다시 생성 하시겠습니까? – Qw4z1
내 질문을 수정했습니다. 확인해주십시오. –
이 질문을 확인하십시오 질문 : http://stackoverflow.com/questions/11307390/dialogfragment-disappears-on-rotation-despite-setretaininstancetrue 대화 상자에서 setRetainInstance 만 제거하려고합니다. – Qw4z1