布局setOnClickListener不工作

时间:2017-04-01 08:45:58

标签: android android-fragments nullpointerexception

过去几天,面对这个问题。我知道 NullPointerException 。 片段发布崩溃。

爪哇

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)
{
    View view = inflater.inflate(R.layout.fragment_tab_home,container,false);


        final Dialog alertDialog = new Dialog(getActivity());
        alertDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        alertDialog.setContentView(R.layout.dialog_viewpager);
        alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
        alertDialog.show();
        viewPager = (ViewPager)alertDialog.findViewById(R.id.view_pager);

        // layouts of all welcome sliders
        // add few more layouts if you want
              layouts = new int[]{
                R.layout.welcome_slide1,
                R.layout.welcome_slide2,
                R.layout.welcome_slide3,

        }

        myViewPagerAdapter = new ViewPagerAdapter();
        viewPager.setAdapter(myViewPagerAdapter);

        RelativeLayout rl_header_thirdObj=(RelativeLayout)alertDialog.findViewById(R.id.rl_header_third);
    //Here//    rl_header_thirdObj.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                alertDialog.dismiss();
            }

    return view;
}

崩溃

  

at dalvik.system.NativeStart.main(Native Method)引起:   java.lang.NullPointerException at   com.fragment.FragmentHome.onCreateView

表示行 rl_header_thirdObj.setOnClickListener

FYI

RelativeLayout rl_header_thirdObj 显示在 welcome_slide3.xml 中。

我可以知道实现目标的正确方法是什么?有没有人遇到这个问题?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

此处Relativelayout不属于alertDialog视图的一部分。

所以代替:

 RelativeLayout rl_header_thirdObj=(RelativeLayout)alertDialog.findViewById(R.id.rl_header_third);

使用:

 RelativeLayout rl_header_thirdObj=(RelativeLayout)view.findViewById(R.id.rl_header_third);