我想知道,对于下面两个代码片段,推荐使用哪种方式?
构造ViewModelProvider时使用片段
public class MyFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final ViewModelProvider viewModelProvider = new ViewModelProvider(this);
tabI
我得到了MyViewModel,它的构造函数是空的
public class MyViewModel extends ViewModel {
private MutableLiveData<RxBleClient> rxBleClient = new MutableLiveData<RxBleClient>();
public MyViewModel() {
}
public MutableLiveData<RxBleClient> getRxBleClient() {
return rxBle
关于过去的问题,以及我找到的例子,它不能解决我的问题。我不允许在这里发表评论,所以我必须再问一次。我没有像在我找到的所有示例和文档中那样使用"of“方法的ViewModelProviders类,比如
model = ViewModelProviders.of(this).get(Something.class);
在Android Studio中,我没有找到要添加为依赖项的"android.arch.lifecycle:extensions“。当我搜索的时候,它显示“没有要显示的东西”。我在API 27。因此,为了尝试使用非弃用元素,我在片段中包含以下内容:
public cl
我用Hilt构建了一个类似这样的ViewModel: @HiltViewModel
class RegisterViewModel @Inject constructor(
private val savedStateHandle: SavedStateHandle,
private val networkClient: NetworkClient
) : ViewModel() {} 但当我运行这个应用程序时,它给我一个错误: java.lang.RuntimeException: Cannot create an instance of class com.package
我试图在BasicActivity的FirstFragment.java文件中初始化我的视图模型对象。这四个代码都失败了。文档对我帮助不大。 mViewModel = new ViewModelProvider(this).get(MyViewModel.class);
mViewModel = new ViewModelProvider(requireActivity()).get(MyViewModel.class);
mViewModel = new ViewModelProvider(getActivity()).get(MyViewModel.class);
mViewModel
我目前正在将我的项目架构从MVP转换为MVVM。当我在做这件事的时候,我发现一些让我困惑的事情:
在项目ViewModelProvider.Factory:的ScheduleViewModelFactory.kt中,工厂实现了
class ScheduleViewModelFactory(
private val userEventRepository:DefaultSessionAndUserEventRepository
) : ViewModelProvider.Factory {
@Suppress("UNCHECKED_CAST")
over
只有当minifyEnabled为真(即使使用-dontobfuscate)时,我才会得到这个错误
java.lang.RuntimeException: Cannot create an instance of class com.myapps.app.TracksVM
at androidx.lifecycle.ViewModelProvider$AndroidViewModelFactory.create(ViewModelProvider.java:202)
at androidx.lifecycle.ViewModelProvider.get(View
当我尝试从我的片段初始化ViewModelProvider时,我得到了上面的错误,如下所示: //This line gives me the error "Cannot create an instance of class..."
SetViewModel setViewModel = new ViewModelProvider(this).get(SetViewModel.class);
final MyListAdapter adapter = new MyListAdapter(this.getActivity(), setViewMode
我正在构建一个遵循mvvm架构的应用程序。但是当我试图从视图模型中调用一个方法时,我会崩溃。在这里阅读类似的问题,但仍然会崩溃。
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.track_it, PID: 17450
java.lang.RuntimeException: Cannot create an instance of class com.fredosuala.track_it.data.viewmodel.TrackerViewModel
at androidx.lifecy
我在BottomSheetDialogFragmet()中使用BottomSheetDialogFragmet,所以我必须用@AndroidEntryPoint标记我的BottomSheet。
@AndroidEntryPoint
class SearchAddressDialog : BottomSheetDialogFragment() {
private val viewModel: MyAddressesViewModel by viewModels()
......
}
但是,当我试图构建我的项目时,它给了我一个错误:
Execution failed f
去年夏天,我开始用Android的体系结构组件(Room、ViewModel、LiveData)重构我的Android应用程序。
我有两个Room存储库,其中一个由应用程序的多个视图(片段)访问。正因为如此,我使用了一个AndroidViewModel,它可以访问这个存储库并在我的MainActivity中初始化它。
new ViewModelProvider(this).get(CanteensViewModel.class);
在我的两个片段中,我访问了这个ViewModel
new ViewModelProvider(getActivity()).get(CanteensViewMode
我正在使用MVVM架构,但我不明白为什么我会有这个错误?我的其他课程有着相同的结构,它们运行得非常好。下面我共享了片段类和ViewModel类的代码以及错误
错误
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.beyond.sellandtrack, PID: 5380
java.lang.RuntimeException: Cannot create an instance of class com.beyond.sellandtrack.screens.dashboard.DashboardViewModel
at an
我有一个ViewModel类,就像的Connecting and repository一节中定义的类一样。当我运行我的应用程序时,我得到一个运行时异常。有没有人知道怎么解决这个问题?我不应该注入ViewModel吗?有没有办法告诉ViewModelProvider使用Dagger来创建模型?
public class DispatchActivityModel extends ViewModel {
private final API api;
@Inject
public DispatchActivityModel(API api) {
this.
我得到了这个错误,并尝试了许多不同的方法(从堆栈溢出,github,等等),其中大多数已经不起作用了,我希望得到社区的帮助。我在项目中使用导航组件,我尝试使用片段管理器切换到旧的方式,得到了相同的结果。使用多片段和单个活动的项目
class LoginViewModel extends AndroidViewModel {
public LoginViewModel(@NonNull Application application) {
super(application);
}
}
public class ScreenLogin extends Fragm
我试图在片段中实现ViewModel,如下所示:
class myFragment: Fragment() {
private val viewModelProvider by lazy { ViewModelProvider(requireActivity()) }
private val myViewModel by lazy {
viewModelProvider.get(
ViewModel::class.java
)
}
....
}
错误是:
E/AndroidRuntime: FA
我在我的ViewModel上得到了以下错误: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.cryptpass_kt/com.example.cryptpass_kt.MainActivity}: java.lang.RuntimeException: Cannot create an instance of class com.example.cryptpass_kt.EntryViewModel
at android.app.ActivityThread.per
我目前正在用Dagger-Hilt来实践依赖注入的项目,但是我无法让我的ViewModel实例化,我已经看过关于同一主题的其他一些问题,大多数问题都指向了Gradle,但这并没有为我解决这个问题,Stacktrace中的所有错误都来自内部类,除了在MainActivity中涉及到我的ViewModel的2行之外。
下面是Stacktrace:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.practiceproject, PID: 9873
java.lang.RuntimeException: Unable to s