java - @AndroidEntryPoint 基类必须扩展 ComponentActivity,(支持)Fragment、View、Service 或 BroadcastReceiver

标签 java android mvvm dependency-injection dagger-hilt

我正在尝试使用 viewmodel 并观察 DialogFragment 中的数据,我也在注入(inject) ViewModel,同时实现代码出错。 PFB 我的代码 fragment 。并帮助我找到合适的解决方案。

  • 当前对话 fragment
  • @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 ();
        }
    }
    
  • 代码中的父 fragment
  • @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 中注入(inject) ViewModel。

    最佳答案

    我通过替换 解决了这个问题对话框 fragment 导入 及其工作正常;
    旧进口:
    进口 android.app.DialogFragment;
    新进口:
    进口 androidx.fragment.app.DialogFragment;

    关于java - @AndroidEntryPoint 基类必须扩展 ComponentActivity,(支持)Fragment、View、Service 或 BroadcastReceiver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68601611/

    相关文章:

    java - 通过 Intent 在选项卡式 Activity 中编辑 TextView - Android

    java - Spring Security - BytesEncryptor - 没有获得正确的加密密码

    android - 关闭异步任务中的进度对话框

    Android 应用程序崩溃的微调器原因

    java - RxJavaSwing + 具有纵向横向 View 的 MVVM

    java - Eclipse 和 cronTriggered 作业调试

    java - 如何在 JTable 上添加复选框?

    android - 在向后兼容的代码中有这么多不推荐使用的方法可以吗?

    c# - WPF:在 MVVM 中创建未知类型绑定(bind)的最佳方式

    wpf - 从 WPF 中的 ViewModel 类(MVVM 模式)更新 UI