Page 1 of 1

Es kann keine Instanz der Klasse ViewModel erstellt werden

Posted: 15 Jan 2025, 16:30
by Guest
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:-

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());
}
}
});
}
}
ViewModel:-

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;
}
}