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

Fragment向Activity传递Intent时应用崩溃求助(使用CardView点击事件)

Fragment中CardView点击跳转Activity崩溃的解决方案

可能的崩溃原因及对应解决方法:

  • 未注册目标Activity
    系统无法找到未在清单文件中声明的Activity,直接导致崩溃。需在AndroidManifest.xml中添加paid_courses的注册代码:

    <activity android:name=".paid_courses" />
    
  • Fragment未依附到Activity导致getActivity()为空
    若Fragment还未绑定到Activity,getActivity()会返回null,创建Intent时触发异常。推荐使用requireActivity()替代(该方法会在Activity为空时抛出明确异常,便于排查):

    public void paid_courses_clicked(View view) {
        Intent intent = new Intent(requireActivity(), paid_courses.class);
        startActivity(intent);
    }
    
  • 点击事件绑定错误
    检查fragment_home.xml中CardView的android:onClick属性是否与方法名完全匹配(大小写、拼写需一致):

    <androidx.cardview.widget.CardView
        ...
        android:onClick="paid_courses_clicked">
        <!-- 子视图内容 -->
    </androidx.cardview.widget.CardView>
    
  • 推荐使用代码绑定点击事件(更可靠)
    避免XML绑定的潜在问题,直接在onCreateView中通过代码设置点击监听:

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootview = inflater.inflate(R.layout.fragment_home, container, false);
        // 替换为你的CardView实际ID
        CardView paidCourseCard = rootview.findViewById(R.id.card_paid_courses);
        paidCourseCard.setOnClickListener(v -> {
            Intent intent = new Intent(requireActivity(), paid_courses.class);
            startActivity(intent);
        });
        return rootview;
    }
    

内容的提问来源于stack exchange,提问作者Shivam Dohre

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 18:10:37