
请查看下面的代码.
public class MyFragment extends Fragment{ @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @OverrIDe public VIEw onCreateVIEw(LayoutInflater inflater,VIEwGroup container,Bundle savedInstanceState) { VIEw rootVIEw = inflater.inflate(R.layout.send_layout,container,false); TextVIEw txtVIEw = (TextVIEw) rootVIEw.findVIEwByID(R.ID.tv); txtVIEw.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { openDialog(); } }); return rootVIEw; } public voID openDialog(){ AppCompatDialog dialog = new AppCompatDialog(getContext(),R.style.package_types__dialog); dialog.setContentVIEw(R.layout.package_types_dialog); dialog.show(); }} 删除行时:
dialog.setContentVIEw(R.layout.package_types_dialog);
没有错误,但如果我使用相同的以下错误抛出:
FATAL EXCEPTION: main10-20 19:42:57.489 23866-23866/in.edelworks.pickedup E/AndroIDRuntime: Process: in.edelworks.pickedup,PID: 2386610-20 19:42:57.489 23866-23866/in.edelworks.pickedup E/AndroIDRuntime: androID.util.AndroIDRuntimeException: Window feature must be requested before adding content10-20 19:42:57.489 23866-23866/in.edelworks.pickedup E/AndroIDRuntime: at androID.support.v7.app.AppCompatDelegateImplV7.throwFeatureRequestIfSubDecorInstalled(AppCompatDelegateImplV7.java:1584)10-20 19:42:57.489 23866-23866/in.edelworks.pickedup E/AndroIDRuntime: at androID.support.v7.app.AppCompatDelegateImplV7.requestwindowFeature(AppCompatDelegateImplV7.java:509)10-20 19:42:57.489 23866-23866/in.edelworks.pickedup E/AndroIDRuntime: at androID.support.v7.app.AppCompatDelegateImplBase.onCreate(AppCompatDelegateImplBase.java:117)10-20 19:42:57.489 23866-23866/in.edelworks.pickedup E/AndroIDRuntime: at androID.support.v7.app.AppCompatDelegateImplV7.onCreate(AppCompatDelegateImplV7.java:148)10-20 19:42:57.489 23866-23866/in.edelworks.pickedup E/AndroIDRuntime: at androID.support.v7.app.AppCompatDialog.onCreate(AppCompatDialog.java:60)10-20 19:42:57.489 23866-23866/in.edelworks.pickedup E/AndroIDRuntime: at androID.app.Dialog.dispatchOnCreate(Dialog.java:361)10-20 19:42:57.489 23866-23866/in.edelworks.pickedup E/AndroIDRuntime: at androID.app.Dialog.show(Dialog.java:262)解决方法 我已经为你的情况实施并尝试了很多替代方案,它的工作非常好,所以我没有机会审查你的错误.但我可以建议你用AlertDialog.Builder替换AppCompatDialog,这是一个androID.support.v7.app类.
替换此代码
public voID openDialog(){ AppCompatDialog dialog = new AppCompatDialog(getContext(),R.style.package_types__dialog); dialog.setContentVIEw(R.layout.package_types_dialog); dialog.show(); } 同
public voID openDialog(){ AlertDialog.Builder dialog = new AlertDialog.Builder(getContext(),R.style.package_types__dialog); dialog.setVIEw(R.layout.package_types_dialog); } 注意 :
如果您有任何处理对话事件的类,则扩展androID.support.v4.app.DialogFragment的DialogFragment.并且不要忘记覆盖onCreateDialog方法.完整的课程看起来像这样
import androID.os.Bundle;import androID.support.v4.app.DialogFragment;/** * Created by Shreekrishna on 2/29/2016. */public class PackageTypesDialog extends DialogFragment { @OverrIDe public Dialog onCreateDialog(Bundle savedInstanceState) { return super.onCreateDialog(savedInstanceState); }} 这可能会解决您的问题!
总结以上是内存溢出为你收集整理的android – 在片段中实现对话框时添加内容之前必须请求窗口功能全部内容,希望文章能够帮你解决android – 在片段中实现对话框时添加内容之前必须请求窗口功能所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)