implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
package com.example.livedatamut;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
public class DemoViewModel extends ViewModel {
private MutableLiveData<Integer> number;
public DemoViewModel() {
number = new MutableLiveData<>();
number.setValue(1);
}
public MutableLiveData<Integer> getMutableLiveData() {
return number;
}
public void add() {
number.setValue(number.getValue() + 1);
}
}
package com.example.livedatamut;
import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
DemoViewModel demoViewModel;
Button button;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
demoViewModel = new ViewModelProvider(this).get(DemoViewModel.class);
button = findViewById(R.id.button);
textView = findViewById(R.id.textView);
demoViewModel.getMutableLiveData().observe(this, new Observer<Integer>() {
@Override
public void onChanged(Integer integer) {
textView.setText(String.valueOf(integer));
}
});
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
demoViewModel.add();
}
});
}
}