对话框片段getView()从外部调用时返回null

时间:2014-07-24 12:29:51

标签: android android-fragments nullpointerexception

尝试访问对话框片段视图时遇到问题。 这是我的工作:

对于我的主要活动中的每个按钮,我在单击按钮时创建一个新的dialogFragment:

    button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                DialogFragment newFragment = ResAmountDialog.newInstance(R.string.res_dialog_title);
                newFragment.show(getFragmentManager(), "dialog");
                ImageView resIcon = (ImageView) newFragment.getView().findViewById(R.id.resourceIcon1);
                resIcon.setImageResource(currentResourceImage);
            }
    });

对话框片段由EditText和ImageView组成。我试图通过获取片段,然后查看其视图然后通过ID查找它来尝试访问上面代码中的imageView,但它返回null。

我试图在互联网上找到解决方案,但所有类似的问题都在片段中访问了他们的视图,我尝试从外部访问它。

1 个答案:

答案 0 :(得分:0)

在调用onCreateView()方法之前,不会加载Fragment的视图(请参阅Fragment生命周期:http://developer.android.com/guide/components/fragments.html)。你真的不应该像你想要的那样尝试更新Fragment的视图。在Dialog Fragment的onCreateView()中设置图像。使用setArguments()和getArguments()传递特定的资源ID(参见passing argument to DialogFragment)。