涉及多个Fragment,点击其中一个fragment中的“点击登录”按钮,跳转到“登录”界面时,出现程序闪退现象

问题说明:我想实现从当前fragment_me中点击一下登录按钮,跳转到登录界面,所以我在MeFragment.java里的onCreate()方法中为TextView控件添加监听事件。但在实际运行中,我点击“Me”之后,会出现闪退现象。

错误:空指针异常

涉及多个Fragment,点击其中一个fragment中的“点击登录”按钮,跳转到“登录”界面时,出现程序闪退现象_第1张图片

出现闪退的代码如下:

public class MeFragment extends Fragment {

    private TextView textView;
    private Button button;
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        textView=(TextView)getActivity().findViewById(R.id.text1);
        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(getActivity(),LoginActivity.class);
                startActivity(intent);
            }
        });
    }

后来发现,Fragment其实只是简单的框架,跳转界面的主体是活动,因此必须先用

onActivityCreated()方法

构建活动,再对Fragment中的TextView控件进行实例化,代码如下:

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        //  return super.onCreateView(inflater, container, savedInstanceState);
        View view=inflater.inflate(R.layout.fragment_me,container,false);
        return view;

    }


    //视图控件请在这里实例化
    //活动创建之后才能对fragment中的控件进行实例化,对控件的实例化、对控件的操作要在这个活动中完成
    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        textView=(TextView)getActivity().findViewById(R.id.text1);
//        button=(Button)getActivity().findViewById(R.id.button1);
        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(getActivity(),LoginActivity.class);
                startActivity(intent);
            }
        });


    }

再次运行程序,跳转到fragment_me之后,点击登录,跳转到如下界面

涉及多个Fragment,点击其中一个fragment中的“点击登录”按钮,跳转到“登录”界面时,出现程序闪退现象_第2张图片

在做二手市场APP项目中,这只是简单的一个小问题,但是解决了蛮长时间,希望以后可以慢慢积累,提高自己解决实际问题的能力

你可能感兴趣的:(Android,Fragment)