Проблема инициализации экземпляра ViewModel с использованием ViewModelProvider (это) - PullRequest
2 голосов
/ 02 мая 2020

Я создаю экземпляр экземпляра класса ViewModel, но он не принимает аргумент this. Пожалуйста, смотрите мой код. Это простой код, поскольку я пытаюсь изучить ViewModel и LiveData

Я искал, но везде дано объяснение ViewModelProviders Пожалуйста, помогите решить

package com.nitin.viewmodellivedata;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProvider;
import androidx.lifecycle.ViewModelStoreOwner;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    TextView textView;
    Button buttonAdd;
    Button buttonReset;
    int score;
    ScoreViewModel scoreViewModel = new ViewModelProvider(ScoreViewModel);

    public void addScore(View view){
        scoreViewModel.addScore();
        textView.setText(String.valueOf(scoreViewModel.getScore()));
    }

    public void resetScore(View view){
        scoreViewModel.resetScore();
        textView.setText(String.valueOf(scoreViewModel.getScore()));
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = (TextView)findViewById(R.id.textView);

        scoreViewModel = new ScoreViewModel();
        scoreViewModel = new ViewModelProvider(this).get(ScoreViewModel.class);

        textView.setText(String.valueOf(scoreViewModel.getScore()));
    }
}

1 Ответ

0 голосов
/ 02 мая 2020

Убедитесь, что в вашем файле build.gradle (:app) есть обе зависимости:

implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
...