我可以从FragmentActivity或Fragment创建和显示DatePickerFragment吗?

时间:2013-10-28 23:53:26

标签: java android eclipse android-fragments

所以,

我有一个带有多个tab的FragmentActivity。我的标签是静态片段,这就是我添加此活动时创建的eclipse。

现在在我的一个标签中,我想要一个显示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构造函数中的第二个参数是

  

“callBack如何通知父母日期已设置。”

所以我试着在保存按钮的静态Fragment类中实现该回调。在我写的按钮onclick方法里面:

FragmentManager fm = getFragmentManager();
DatePickerFragment newFragment = new DatePickerFragment();
newFragment.show(fm, "dialog");

但是Eclipse说,

  

DialogFragment类型中的方法show(FragmentManager,String)不适用于参数(FragmentManager,String)

所以我很困惑。我正在通过显示它想要的参数,但它不能识别它们 有任何想法吗?从我所拥有的标签片段创建和显示我的DatePickerFragment是一个坏主意还是不可能?

另外,当我的minSdkVersion为11且目标为18时,为什么我需要导入所有这个android.support.v4.app.Fragment东西呢?我认为它是针对Android 11的后向兼容性,但如果我尝试只导入例如android.app.Fragment,我会得到所有类型的错误?

所有帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

我认为问题是,您可能从supportLib导入了东西 - 以android.support开头....

不要扩展FragmentActivity,因为它也来自supportLib,而只是在API11 +中扩展Activity。它已经可以处理碎片了。

您必须从supportLib获取所有Fragment内容,或者什么也不需要。混合它不起作用。