在运行时选择对话框的布局

时间:2014-07-03 10:48:57

标签: java android layout dialog runtime

我需要扩展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中没有用于设置视图的方法,只能更改视图容器。

请知道如何做到这一点,或者你可以指导我到达我的理解缺乏的地方。这将不胜感激。 安迪

1 个答案:

答案 0 :(得分:0)

片段具有setArgumentgetArgument方法。您可以通过seArgument作为参数和getArgument返回的捆绑包提供布局ID,并在onCreateView内使用此ID来夸大相应的视图对象