如何从片段中调用getSupportFragmentManager()?

时间:2015-09-18 12:19:59

标签: android fragment datetimepicker

我想在我的代码中使用自定义日期和时间选择器,因为我创建了一个单独的包并将所有日期和时间选择器类放在那里。 如果我从主要活动运行代码,代码运行顺利,但是当我想从片段调用时,它不能识别 getSupportFragmentManager()方法 我从我的片段中拨打的电话是:

##1
For ($i =$j=0; $i -le $SourceFolderList.Count -and $j -le $DestinationFolderList.Count; $i++ -and $j++)
 {
    $file1Name = $SourceFolderList[$i].Name 
    $file1Path = $SourceFolderList[$i].FullName 

    $file2Name = $DestinationFolderList[$j].Name 
    $file2Path = $DestinationFolderList[$j].FullName  
 }

##2
foreach( $file in $SourceFolderList)
{
    if($DestinationFolderList.Name  -contains $file.Name )
    {
        Write-Host  $file.Name -ForegroundColor Cyan 
        Write-Host  $DestinationFolderList.($file.Name).FullName -ForegroundColor Yellow
    }
}

请帮助,谢谢你们。

5 个答案:

答案 0 :(得分:0)

你不

您需要从片段中调用getChildFragmentManager()。试图致电getActivity().getSupportFragmentManager()会引发错误。

答案 1 :(得分:0)

看起来SimpleDateTimePicker类是您自己的类,它只接受android.app.FragmentManager,而不接受android.support.v4.app.FragmentManager。因此,您只能将该类用于API11或更高版本。如果您要使用android.support.v4.app.FragmentManager,则需要修改SimpleDateTimePicker以接受构造函数中的android.support.v4.app.FragmentManager

修改

好的,有两个不同的类:android.app.FragmentManagerandroid.support.v4.app.FragmentManager。第二个是第一个的兼容性实现。大多数应用程序使用第二个,因为它允许在API 11之前使用。并且链接中的类使用第一个。有两种方法可以解决它:
第1天 - 您开始使用android.app.FragmentManager而不是android.support.v4.app.FragmentManager。这将导致app仅在api 11之上工作。
第二种方法是将SimpleDateTimePicker的代码更改为使用android.support.v4.app.FragmentManager。我认为这是更正确的方式。

答案 2 :(得分:0)

首先检查frgaments android.support.v4.app.Fragmentandroid.app.Fragment的{​​{1}}延伸。如果是android.app.Fragment,请致电getActivity().getFragmentManager();或者是否来自支持frgament然后调用getActivity().getSupportFragmentManager();

答案 3 :(得分:0)

这对我有用

getBaseActivity().getFragmentManager()

试试吧。

答案 4 :(得分:0)

这对我有用:

getChildFragmentManager()