java - @AndroidEntryPoint 基类必须扩展 ComponentActivity,(支持)Fragment、View、Service 或 BroadcastReceiver
问题描述
我正在尝试使用 viewmodel 并观察 DialogFragment 中的数据,我也在注入 ViewModel,同时实现代码出错。PFB 我的代码片段。并帮助我找到合适的解决方案。
- 当前对话框片段
@AndroidEntryPoint
public class MyFragmentFragment extends DialogFragment implements View.OnClickListener {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_buycourse, container, false);
myViewModel = new ViewModelProvider(this).get(MyViewModel.class);
view = mBinding.getRoot();
initViews();
return view;
}
public static MyFragmentFragment newInstance(){
return new MyFragmentFragment ();
}
}
- 代码中的父片段
@AndroidEntryPoint
public class HomeFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mBinding.startBtn.setOnClickListener(v -> {
DialogFragment dialog = new MyFragmentFragment ();
dialog.setStyle(DialogFragment.STYLE_NO_TITLE, R.style.Theme_Learn365_NoActionBar);
dialog.show(requireActivity().getFragmentManager(), "MyFragment");
}
}
}
当我运行它时,我得到“@AndroidEntryPoint 基类必须扩展 ComponentActivity、(支持)Fragment、View、Service 或 BroadcastReceiver。” 而且我无法在 DialogFragment 中注入 ViewModel。
解决方案
I resolved this issue by replacing the DialogFragment import and its working fine;
Old Import: import android.app.DialogFragment;
New Import: import androidx.fragment.app.DialogFragment;
推荐阅读
- javascript - 如何更改html元素中的索引
- javascript - ROBLOX 不和谐机器人
- javascript - 无法在 Internet Explorer 11 中获取块 cookie 值
- session-variables - 如何从昨天的高点和收盘点画水平线?以及如何解决时间格式?行间填充
- python - 如何在Python中获取匹配名称的列表文件
- ruby-on-rails - 在 Heroku 上部署 Rails 应用程序时 Webpack 未找到错误
- java - 线程调度策略、上下文切换时间和线程的总 CPU 时间存在问题。Linux
- ruby-on-rails - 未定义的方法“变形虫”rails 5.2
- javascript - 存储在火库中并将 url 保存在变量中
- angular - ngx-material-timepicker v5.4.3 - 修改timepicker-field的样式