0
내 문제는 사용자가 취소 버튼을 클릭하여 장치를 돌릴 때 내 액티비티 대화 상자 인스턴스를 다시 생성한다는 것입니다. 결과적으로 장치를 회전해도 대화 상자가 사라지지 않고 다시 나타납니다.안드로이드 - 회전하는 동안 대화 상자를 처리하는 방법
이 DialogFragment입니다 :
new DistanceDialog().show(getFragmentManager(), "distancedialog");
당신이 회전 사이의 대화 상태를 처리하는 방법의 가장 좋은 방법은 무엇인지 나를 설명 할 수 :
public class DistanceDialog extends DialogFragment{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
setRetainInstance(true);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
// Get the layout inflater
LayoutInflater inflater = getActivity().getLayoutInflater();
// Inflate and set the layout for the dialog
// Pass null as the parent view because its going in the dialog layout
builder.setView(inflater.inflate(R.layout.distance_dialog, null))
// Add action buttons
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
return builder.create();
}
@Override
public void onDestroyView() {
if (getDialog() != null && getRetainInstance())
getDialog().setDismissMessage(null);
super.onDestroyView();
}
}
가 그 다음, 조각에 내가 대화를 호출
? 고마워요!는 UPDATE :
많은 테스트 후 나는이 문제는 회 전자의 행동에 발생하는 것으로 나타났습니다. 실제로 간단한 단추를 사용하여 대화 상자를 호출하면 제대로 작동하지만 회 전자 수신기에서 대화 상자를 호출하려고하면 문제가 지속됩니다.
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos,
long ID){
switch(pos){
case 0:
//DOING SOME STUFF
break;
case 1:
//DOING SOME STUFF
break;
case 2:
new DistanceDialog().show(getFragmentManager(), "distancedialog");
break;
}
감사를 변경할 수 있지만, 나는이 문제가 해결되지 생각합니다. 위의 업데이트를 읽으십시오. –