阅读背景:

ViewModel原理,源码分析,通俗易懂

来源:互联网 

先看使用方法:

public class MyActivity  extends AppCompatActivity {
    private MyViewModel vm;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        MyActivityBinding binding = MyActivityBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());

        vm = new ViewModelProvider(this,new ViewModelProvider.AndroidViewModelFactory(getApplication())).get(MyViewModel.class);

        binding.btSend.setOnClickListener(v -> {
            vm.setAccount("123456789");
        });

        binding.btGet.setOnClickListener(v->{
            Log.e("ViewModel",vm.mAccount.getValue().toString());
        });

        vm.mAccount.observe(this, new Observer<String>() {
            @Override
            public void onChanged(String s) {
                Log.e("ViewModel","Observer--onChanged" + s);
            }
        });

    }
}

public class MyViewModel extends AndroidViewModel implements Serializable {

    public  MyLiveData<String> mAccount;

    public MyViewModel(@NonNull Application application) {
        super(application);
        mAccount = new MyLiveData<>();
    }

    public void setAccount(String account){
        mAccount.setValue(account);
    }
}public class MyActivity  extends 



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: