本文主要是介绍Android : ViewModel+LiveData observe观察数据 改变内容简单应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
observe观察数据 改变内容
1.导包
// 使用androidx版本库implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0-alpha03'// 或者,使用support版本库implementation 'android.arch.lifecycle:extensions:1.1.1'
2.继承ViewModel
package com.example.mylivedata;import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;//需要改变的数据
public class MyViewModel extends ViewModel {private MutableLiveData<Integer> data;public MutableLiveData<Integer> getData() {if(data == null){data = new MutableLiveData<>();data.setValue(0);}return data;}public void addNumberData(int num){data.setValue(data.getValue() + num);}
}
3.使用
package com.example.mylivedata;import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;import androidx.appcompat.app.AppCompatActivity;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders;public class MainActivity extends AppCompatActivity {private TextView textView;private ImageView imgZan,imgCai;private MyViewModel myViewModel;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView = findViewById(R.id.tv_content);imgZan = findViewById(R.id.img_zan);imgCai =findViewById(R.id.img_cai);myViewModel= ViewModelProviders.of(this).get(MyViewModel.class);//观察自己myViewModel.getData().observe(this, new Observer<Integer>() {@Overridepublic void onChanged(Integer integer) {//内容发生改变textView.setText(String.valueOf(integer));}});//绑定事件imgZan.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {myViewModle.addNumberData(1);}});imgCai.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {myViewModle.addNumberData(-1);}});}
}
这篇关于Android : ViewModel+LiveData observe观察数据 改变内容简单应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!