2013-10-28 30 views
1

所以,我可以通過FragmentActivity或Fragment創建並顯示DatePickerFragment嗎?

我有一個FragmentActivity與多tabs.My選項卡是靜態片段,這只是什麼日食創建時,我添加此活動。

現在在我的一個選項卡中,我想要一個顯示DatePickerDialog的按鈕。我的理解是我創建像這樣一類,

public class DatePickerFragment extends DialogFragment { 

public DatePickerFragment(){ 
} 

public Dialog onCreateDialog(Bundle savedInstanceState){ 
    //Default dagsetning er i dag. 
    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); 

    return new DatePickerDialog(getActivity(),HomeScreenFragment.OnDateSet(year,month,day),year,month,day; 
    } 
} 

好文檔說,在DatePickerDialog構造函數的第二個參數是

「回調父如何通知的日期設置。」

所以我試圖在我的靜態Fragment類實現該回調持有按鈕。按鈕的onclick方法中我寫道:

FragmentManager fm = getFragmentManager(); 
DatePickerFragment newFragment = new DatePickerFragment(); 
newFragment.show(fm, "dialog"); 
在類型DialogFragment

但是Eclipse說,

的方法秀(FragmentManager,字符串)不適用的參數(FragmentManager,字符串)

所以我很困惑。我通過顯示它想要的參數,但它不能識別它們。
任何想法?這是一個壞主意,也許不可能創建並顯示我的標籤片段我的DatePickerFragment?

此外,爲什麼我需要導入所有此android.support.v4.app.Fragment的東西,當我的minSdkVersion是11和目標是18?我認爲這是爲了向後兼容預安卓11,但如果我嘗試只是導入例如android.app.Fragment,我得到所有類型的錯誤?

所有幫助表示感謝!

回答

0

我認爲問題是,你可能進口來自supportLib的東西 - 與android.support開始....

以來還從supportLib不要延長FragmentActivity,而只是延長活動在API11 +中。它已經可以處理碎片。

你要麼必須從supportLib中取得所有片段的東西,要麼沒有。混合它不起作用。

+0

感謝您的答案,所以我試圖簡單地擴展活動,但隨後在eclipse genarated代碼中,我在這個類變量中出現錯誤, SectionsPagerAdapter mSectionsPagerAdapter; – Jarvis

+0

好的 - 所以生成的東西有些需要來自支持庫的更多東西 - 你也可以去另一個方向 - 只使用支持庫中的Fragment。再次擴展FragmentActivity,不要從android.app中導入DialogFragment,而是從DatePicker中的android.support ....中導入。這還有另一個好處,就是你已經可以使用像支持庫中存在的嵌套片段這樣的新東西,但不能在API 11 Fragments中使用。只是不要混合它。 –

+0

是的,我搜索了一些,大多數人都同意使用支持庫是最簡單的。清理一切,並得到它的工作。感謝您的支持! – Jarvis

相關問題