Amr*_*mar 7 java android dependency-injection mvvm dagger-hilt
我正在尝试使用 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 ();
}
}
Run Code Online (Sandbox Code Playgroud)
@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");
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行此命令时,我收到“@AndroidEntryPoint 基类必须扩展 ComponentActivity、(支持)Fragment、View、Service 或 BroadcastReceiver”。我无法在 DialogFragment 中注入 ViewModel。
我通过替换DialogFragment 导入解决了这个问题,它工作正常;
旧导入:导入android.app.DialogFragment;
新导入:导入androidx.fragment.app.DialogFragment;
| 归档时间: |
|
| 查看次数: |
3852 次 |
| 最近记录: |