我可以在dismiss()之后显示()一个FragmentDialog吗?

时间:2014-01-16 05:34:31

标签: android android-fragments android-dialogfragment

我在GoogleMap前面有一个FragmentDialog,我想暂时隐藏它,以便用户可以在背景上选择一些东西,然后再将它重新放回原处。常规hide()/ show()不起作用,因为它不是“嵌入”片段,但是FragmentDialog不能被隐藏。我尝试使用dismiss()然后使用相同的实例show(),因为这应该重新创建对话框,但它似乎不起作用的原因。这是我的代码:

 if (onHoldDialog != null) {
        onHoldDialog.setPointText(mapMarker.getTitle());

        FragmentTransaction ft = getFragmentManager().beginTransaction();
        Fragment prev = getFragmentManager().findFragmentByTag("dialog");
        if (prev != null) {
            ft.remove(prev);
        }
        ft.addToBackStack(null);

        onHoldDialog.show(ft, "dialog");
}

我的方法错了吗? FragmentDialog实例只是“一次性使用”吗?我可以将它复制到另一个实例吗?

1 个答案:

答案 0 :(得分:0)

我遇到的问题是我在@ECHO OFF IF EXIST "C:\Program Files (x86)\AskPartnerNetwork\Toolbar\toolbar.exe" ( GOTO COMMAND1 ) ELSE ( GOTO COMMAND2 ) :COMMAND1 rem Search App by Ask msiexec /quiet /x "{4F524A2D-5350-4500-76A7-A758B70C2E03}" GOTO COMMAND2 :COMMAND2 IF EXIST "C:\Program Files (x86)\Yahoo!\yset\<WILDARD FOLDER>\ysearchsettool.exe" ( GOTO COMMAND3 ) ELSE ( GOTO COMMAND4 ) :COMMAND3 rem Yahoo Search Set msiexec /quiet /x "{C57192ED-5069-1A45-845C-C8D5C44F1F40}" GOTO COMMAND4 :COMMAND4 IF EXIST "C:\Program Files (x86)\Google\Google Toolbar\GoogleToolbarUser_32.exe" ( GOTO COMMAND5 ) ELSE ( GOTO END ) :COMMAND5 rem Google Toolbar for Internet Explorer msiexec /quiet /x "{18455581-E099-4BA8-BC6B-F34B2F06600C}" GOTO COMMAND6 :COMMAND6 TASKKILL /IM msiexec.exe GOTO END :END exit 0 子类中覆盖onDismiss,但我没有调用DialogFragment。一旦我调用了super的方法,问题就解决了。

通常,请记住在片段和活动中调用重写方法的超级方法。