本文共 1443 字,大约阅读时间需要 4 分钟。
最近在做一个APP,涉及用户登录界面。
说明:我“”对应一个my_fragment,my_fragment里点击一张图片进行登录,跳转到登录界面(为一个Empty Activety)。 我在Fragment 的 onCreate()方法中为图片添加了监听事件,运行安装之后发现点击下方的我的那个按钮,程序崩掉了。public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ImageView user_login; user_login=(ImageView)getActivity().findViewById(R.id.my_login); user_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent=new Intent(getActivity(),LoginActivity.class); startActivity(intent); } }); if (getArguments() != null) { mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } }
看的错误是空指针异常。
后来发现是要在my_fragment里面加一个下面这个方法就可以了。 原因: 活动创建之后才能对fragment中的控件进行实例化,对控件的实例化、对控件的操作要在这个方法中完成.//活动创建之后才能对fragment中的控件进行实例化,对控件的实例化、对控件的操作要在这个活动中完成 @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); user_login=(ImageView)getActivity().findViewById(R.id.my_login); user_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent=new Intent(getActivity(),LoginActivity.class); startActivity(intent); } }); }