긴말 필요없고 MVVM 패턴에서 주로 사용하는 방식으로 observe 를 이용해서 실시간으로 데이터를 변경하는 구조임.

 

public class MainActivity extends AppCompatActivity {

    //변경 가능한 LiveData 
    public MutableLiveData<String> observerResults = new MutableLiveData<String>();

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

        // observe 값이 변경될때마다 호출됨.
        observerResults.observe(this, new Observer<String>() {
            @Override
            public void onChanged(String s) {
                Log.d("observe", s);
            }
        });

        Button button = findViewById(R.id.button);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                    	//버튼이 클릭될때 setValue 에 값을 넣으면 observe 의 onChanged 호출됨.
                        observerResults.setValue("안녕하세요.");
                    }
                });
            }
        });
    }
}

+ Recent posts