본문 바로가기
언어 공부/Android

[[Android/JAVA]] observe.. 문자열 Resource..

by 안다니. 2020. 9. 18.
반응형

기본 개념은

 

Generator : 관찰 대상자를 나타내며, 현재 관찰 대상자에 붙어있는 Observer들을 관리 뿐만 아니라 현재 관찰 대상자의 상태 정보를 얻기 위한 메서드를 제공, 상태 변화시 등록되어 있는 모든 관찰자들에게 상태 변화를 통지해주는 메서드를 제공

 

StringGenerator : Generator를 상속받는 실제 상태 정보를 가지고 있는 객체. 상태 변화가 발생하면 상태 변화를 통지해주는 메서드를 호출

 

Observer : 관찰자들이 가져야 할 공통인터페이스를 정의합니다.

 

StringObserver : 관찰 대상자의 상태 정보를 가져와 자신의 상태와 동기화. 이 객체는 관찰 대상자의 String형을 모니터에 출력해주는 객체

 

StringCountObsever : 마찬가지로 관찰 대상자의 상태 정보를 가져와 자신의 상태와 동기화. 이 객체는 관찰 대상자인 String형 문자열의 개수를 화면에 출력해주는 객체

 

Observer

 

출처 

 

15 옵저버 패턴 (Observer Pattern)

옵저버 패턴 (Observer Pattern) 옵저버 패턴은 개개체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드를 통하여 관찰 대상자가 직접 옵저

lktprogrammer.tistory.com

 


하지만 우리는 이런 기능을 가져다가 쓰면 된다.

 

반응형

 

menuViewModel에 있는 pageId는 페이지의 정보를 가지고 있는 MutableLiveData다. 메뉴 화면에서 버튼을 눌렀을 때 text의 값을 가지고 오기 위해서 사용을 했다.

android:text="@string/data"
//value/style.xml 에 선언 되어 있는 값
android:onClick = "@{()->viewModel.buttonGo}"

//activity_menu

 

버튼에서 값을 가지고 오기 위해서는, Resource 선언을 통해 값을 얻어온다.

 public void buttonGo(){
        pageId.setValue(resources.getString(R.string.data));
    }
    
//MenuViewModel.java

 

그리고 Activity에서는 pageId의 값이 변경이 됐는지 확인을 하기 위해서 observe를 걸어준다.

 

 menuViewModel.pageId.observe(this,pageId ->{
            if(pageId == null){
                return;
            }

            Intent intent = null;

            if(pageId.equals("데이터")){
                intent = new Intent(this, 이동할액티비티.class);
            }

            startActivity(intent);
            finish();
        });
반응형

댓글