大佬教程收集整理的这篇文章主要介绍了android – getSupportFragmentManager不能在DialogFragment上编译,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
public class TagsDialog extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceStatE) { AlertDialog.builder builder = new AlertDialog.builder(getActivity()); LayoutInflater inflater = getActivity().getLayoutInflater(); builder.setView(inflater.inflate(R.layout.tags_dialog,null)); builder.setmessage("This is a message").settitle("TAGS"); return builder.create(); } }
从ViewPager里面的Fragment里面:
public class MyFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceStatE) { ... ImageView btnTags = (ImageView)view.findViewById(R.id.btnTags); btnTags.setOnClickListener(new View.onClickListener() { @Override public void onClick(View view) { DialogFragment dlg = new TagsDialog(); //this line doesn't compile dlg.show(getSupportFragmentManager(),"tags"); } }); } }
我已经尝试了很长时间才能使这个工作,但getSupportFragmentManager永远不会解决…任何想法?
编辑:
我觉得这都是由支持FragmentManager和android.app.FragmentManager引起的,但我不知道如何解决这个问题,因为我正在使用支持库中的ViewPager …
getSupportFragmentManager /以及所有相关的getFragManager方法(如父级和子级)总是从支持lib返回Manager,而show方法需要核心方法.
进口是:
import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; FragmentManager fm = getActivity().getSupportFragmentManager(); // returns from support lib DialogFragment dlg = new TagsDialog(); dlg.show(fm,"tags"); // wants core...
如果我只使用COre,则getActivity()上不存在getSupportFragmentManager()…
以上是大佬教程为你收集整理的android – getSupportFragmentManager不能在DialogFragment上编译全部内容,希望文章能够帮你解决android – getSupportFragmentManager不能在DialogFragment上编译所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。