我正在尝试运行此代码:
Fragment resultFrag = getSupportFragmentManager().findFragmentByTag("dialogoimagen");
if (resultFrag != null) {
DialogImagen dialogonuevo = DialogImagen.newInstance(usuario,indicesql,titulo,anuncio,url,esUsuario);
getSupportFragmentManager().beginTransaction().replace(resultFrag.getId(), dialogonuevo).addToBackStack(null).commit();
}
这样说:Must use non-zero containerViewId
...我不知道哪个是DialogFragment中的containerViewId,我必须在替换中引入(http://developer.android.com/reference/android/support/v4/app/FragmentTransaction.html#replace%28int,%20android.support.v4.app.Fragment,%20java.lang.String%29)
欢迎任何帮助
答案 0 :(得分:0)
replace(resultFrag.getId(),dialogonuevo)方法期望视图id用作片段的容器 - 视图将替换为片段)。您正在传递片段ID,该片段当前为空。
通常你的布局文件中会有一个FrameLayout,id为R.id.fragment,你的替换调用看起来像:
replace(R.id.fragment, dialogonuevo)
此外,您的dialogonuevo片段似乎可能是某种DialogFragment?在这种情况下,您可能希望使用dialogfragment的show()方法,而不是片段事务。