我需要扩展DialogFragment
来创建带有用户输入的对话框,并将它们存储为由另一个类操纵。根据用户选择的选项,可能需要显示大约六种不同的布局。扩展对话碎片六次并不适合我作为OOP的忠实启动者。那么我的问题是如何在运行时将布局传递给DialogFragment。
我试过在AdvantageDialog中创建一个类变量和一个getter方法都无济于事。
它像这样实例化
DialogFragment newFragment = new AdvantageDialog();
newFragment.show(getFragmentManager(), "add_advantage");
但是然后可以从外部访问newFragment.inputScreen和newFragment.setInputScreen(some int)(即“setInputScreen(int)未定义类型dialogfragment”)。我想如果我使用AdvantageDialog aD = new AdvantageDialog然后使用aD.setInputScreen(某些int)它会起作用,但我不会受益于DialogFragment处理生命周期方法。另外据我所知,API中没有用于设置视图的方法,只能更改视图容器。
请知道如何做到这一点,或者你可以指导我到达我的理解缺乏的地方。这将不胜感激。 安迪
答案 0 :(得分:0)
片段具有setArgument
和getArgument
方法。您可以通过seArgument
作为参数和getArgument
返回的捆绑包提供布局ID,并在onCreateView
内使用此ID来夸大相应的视图对象