You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RecyclerView点击跳转Fragment遇空指针异常,求解决方法

解决RecyclerView跳转Fragment时Bundle空指针问题

出现java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference错误,核心原因是接收方Fragment(Kitdetail_Fragment)中获取Bundle时,getArguments()返回了null,或是直接未做判空就调用getString()。

第一步:修正Kitdetail_Fragment的Bundle获取逻辑

在Fragment的生命周期方法(比如onCreateView或onCreate)中,必须先判断getArguments()是否为null,再取值:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_kitdetail, container, false);
    
    // 先获取Bundle并判空
    Bundle bundle = getArguments();
    if (bundle != null) {
        String name = bundle.getString("name");
        // 这里写使用name的业务逻辑
    }
    
    return view;
}

避免直接写getArguments().getString("name")——如果因为某种原因(比如Fragment实例化后未正确设置Arguments)导致getArguments()为null,就会触发空指针。

第二步:优化传递方代码的安全性

你当前的传递逻辑是正确的,可以加两个小优化避免后续隐患:

  1. 确保jName的输出符合预期:虽然String.valueOf(jName)已经能处理null,但如果jName是自定义对象,建议重写toString()方法保证输出格式正确。
  2. 判空Context类型:防止view.getContext()不是AppCompatActivity的情况:
holder.pics.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Bundle bundle = new Bundle();
        bundle.putString("name", String.valueOf(jName));

        Kitdetail_Fragment jerseyFragment = new Kitdetail_Fragment();
        jerseyFragment.setArguments(bundle);

        if (view.getContext() instanceof AppCompatActivity) {
            AppCompatActivity activity = (AppCompatActivity) view.getContext();
            activity.getSupportFragmentManager()
                    .beginTransaction()
                    .replace(R.id.framelay, jerseyFragment)
                    .addToBackStack(null)
                    .commit();
        }
    }
});

内容的提问来源于stack exchange,提问作者Amaankhan Pathan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 14:24:30