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

如何从Fragment中打开Activity?从Home Fragment启动ruki Activity时应用崩溃如何解决

错误原因
  • 空指针异常:你声明了全局ImageButton ruki变量,但在onCreateView中仅对局部变量final ImageButton imageButton做了控件绑定,全局ruki始终为null,后续调用ruki.setOnClickListener(onClickListener)时触发空指针崩溃。
  • 布局绑定无效:你先调用inflater.inflate(R.layout.fragment_home, null)加载了布局并做了点击事件绑定,最终返回时又重新执行inflater.inflate(R.layout.fragment_home, container, false)加载了全新的布局实例,前面所有针对旧布局的操作全部失效。
  • 额外排查项:确认ruki_activity已经在项目的AndroidManifest.xml中完成注册,未注册的Activity启动时也会触发崩溃。
修正后代码
ImageButton ruki;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // 仅加载一次布局,使用标准的Fragment布局加载参数
    View view = inflater.inflate(R.layout.fragment_home, container, false);
    // 给全局ruki变量绑定控件,不要冗余创建局部变量
    ruki = (ImageButton) view.findViewById(R.id.ruki);
    
    View.OnClickListener onClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            switch (view.getId()){
                case R.id.ruki:
                    Intent intent = new Intent(HomeFragment.this.getActivity(), ruki_activity.class);
                    startActivity(intent);
                    break;
            }
        }
    };
    ruki.setOnClickListener(onClickListener);
    // 返回已经完成控件绑定的布局实例
    return view;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:36:04