Es kann keine Instanz der Klasse ViewModel erstellt werden
Posted: 15 Jan 2025, 16:30
Ich versuche, eine Beispiel-App mit Android-Architekturkomponenten zu schreiben, aber selbst nach tagelangen Versuchen konnte ich es nicht zum Laufen bringen. Es gibt mir die obige Ausnahme.
Lebenszyklusbesitzer:-
ViewModel:-
Lebenszyklusbesitzer:-
Code: Select all
public class MainActivity extends LifecycleActivity {
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = findViewById(R.id.tv_user);
PostViewModel viewModel = ViewModelProviders.of(this).get(PostViewModel.class);
viewModel.loadPosts();
viewModel.getPost().observe(this, new Observer
() {
@Override
public void onChanged(@Nullable Post post) {
if(post != null) {
textView.setText(post.toString());
}
}
});
}
}
Code: Select all
public class PostViewModel extends ViewModel {
private MediatorLiveData post;
private PostRepository postRepo;
PostViewModel() {
post = new MediatorLiveData();
postRepo = new PostRepository();
}
public LiveData loadPosts() {
post.addSource(postRepo.getPost(),
post -> this.post.setValue(post)
);
return post;
}
@NonNull
public LiveData getPost() {
return post;
}
}