1

所以,

我有一个带有多个选项卡的 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,我会得到所有类型的错误?

所有帮助表示赞赏!

4

1 回答 1

0

我认为问题在于,您可能从 supportLib 中导入了这些东西 - 以 android.support.... 开头

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

您要么必须从 supportLib 中获取所有 Fragment 东西,要么什么都不做。混合它不起作用。

于 2013-10-29T00:27:53.307 回答