Java Fragment中onCreateView出现不可达语句问题求助
解决Fragment中onCreateView的不可达语句问题
问题根源很明确:Java方法里执行到return语句时会立即终止方法并返回结果,return之后的所有代码永远不会被执行,所以你写在return binding.getRoot();后面的createNotificationChannel()和按钮点击事件代码就成了不可达语句。
修复方法就是把return语句移到所有初始化逻辑的最后:
@Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = FragmentAlarmBinding.inflate(getLayoutInflater()); // 先执行所有初始化操作 createNotificationChannel(); binding.cancelAlarmBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { cancelAlarm(); } }); // 最后返回视图 return binding.getRoot(); }
调整顺序后,所有代码都会按预期顺序执行,不会再出现不可达语句的错误。
内容的提问来源于stack exchange,提问作者Nisanur Turan
相关产品推荐
相关产品推荐

