LiveData+ViewModelの使い方1:データ取得

1991 ワード

これまでMVPを使って開発してきた.出勤してMVVMを見たばかりです.LiveData+ViewModelは確かに力がありますが、databindingを見るとxmlの書き方が複雑な感じがします.まずLiveDataを記録してViewModelと組み合わせて使用します.
LiveData   

       Activity  stop        。               ,   activity     ,          LiveData   。
        。                                 
    。             

ViewModel  

   UI     , UI      。

最も簡単な使い方
1.View Modelの作成
		
	public class SimpleViewModel extends ViewModel {
	
    private MutableLiveData content;

    public MutableLiveData getContent() {
        if (content == null) {
            content = new MutableLiveData<>();
        }
        return content;
    }

    public void setContent(MutableLiveData content) {
        this.content = content;
    }
    

    /**
     *     
     */
    public void getContentData() {
    	//       Repository   /      
    	//        setValue/postValue  ,     Activity  onChange  
    	
        content.setValue("        ");
        //       content.postValue(""        ");
    }
 	}
	
  • ViewModelの作成が完了すると、ActivityはViewModel
  • を呼び出します.
    		btn = findViewById(R.id.btn);
            //  ViewModel  
            final SimpleViewModel model = ViewModelProviders.of(this).get(SimpleViewModel.class);
    
            //  content    ,     setValue/postValue     
            model.getContent().observe(this, new Observer() {
                @Override
                public void onChanged(@Nullable String s) {
                    Log.e("SimpleActivity", "onChanged");
                    btn.setText(s);
                }
            });
    		
    		//   
            btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                //      
                    model.getContentData();
                }
            });
    

    リファレンスリンクhttps://www.jianshu.com/p/9e56c206956e https://www.jianshu.com/p/b1208012b268