2013-07-19 23 views
2

我開發一個Android應用程序,我有設計佈局的一個問題:如何在FragmentActivity中使用`DatePickerDialog`?

我有一個片段在這個代碼:

DatePickerDialog dialog = 
    DatePickerDialog(getActivity(), mDateSetListener, mYear, mMonth, mDay); 

而且我得到這個編譯器錯誤:

The method DatePickerDialog(FragmentActivity, DatePickerDialog.OnDateSetListener, int, int, int) is undefined for the type UserProfileFragment UserProfileFragment.java  

如何在片段中使用DatePickerDialog

順便說一句,「父母」活動延伸SlidingFragmentActivity

回答

4

你錯過了new關鍵字

DatePickerDialog dialog = new 
    DatePickerDialog(getActivity(), mDateSetListener, mYear, mMonth, mDay); 
+0

哇!請殺了我!哈哈哈 – VansFannel

+4

:)這些事情發生:) – Blackbelt

1

我認爲這將是更正確的使用DatePickerFragment(內Fragment又名DatePickerDialog),並把它添加到FragmentManager(見getSupportFragmentManager()

這樣你才能生存顯示器旋轉(見Prevent dialog dismissal on screen rotation in Android

片段本身

public static class DatePickerFragment extends DialogFragment 
          implements DatePickerDialog.OnDateSetListener { 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     // Use the current date as the default date in the picker 
     final Calendar c = Calendar.getInstance(); 
     int year = c.get(Calendar.YEAR); 
     int month = c.get(Calendar.MONTH); 
     int day = c.get(Calendar.DAY_OF_MONTH); 

     // Create a new instance of DatePickerDialog and return it 
     return new DatePickerDialog(getActivity(), this, year, month, day); 
    } 

    public void onDateSet(DatePicker view, int year, int month, int day) { 
     // Do something with the date chosen by the user 
    } 
} 

代碼以顯示DatePickerFragment

DialogFragment newFragment = new DatePickerFragment(); 
newFragment.show(getSupportFragmentManager(), "datePicker"); 

Dont't忘記改變extends Activityextends FragmentActivity

相關問題