2013-06-02 78 views
0

只需使用DatePicker對話框,當您在彈出對話框中更改方向時,它會給您一個錯誤。你如何禁用方向改變?如何在彈出對話框時禁用方向更改?

public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener { 

    private Task mTask; 
    private static final String DIALOG_DATE = "Date"; 
    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     // Use the current date as the default date in the picker 
     int year; 
     int month; 
     int day; 

     final Calendar c = Calendar.getInstance(); 
     year = c.get(Calendar.YEAR); 
     month = c.get(Calendar.MONTH); 
     day = c.get(Calendar.DAY_OF_MONTH); 



     return new DatePickerDialog(getActivity(), this, year, month, day); 
    } 

回答

1

覆蓋您的DialogFramgent中的show(),並在調用它時禁用Activity的方向。讓您的DilagFragment實現DismissListener,並在調用onDismiss時,重新啓用方向

@Override 
public void show(FragmentManager fm, String tag) { 
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
super.show(fm, tag); 
}