마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

다른 클래스에서 ui 변경 질문..

0 추천
예를들어

MainActivity.class에 setContentView(R.layout.mainactivity)가 있다고 하겠습니다.

그리고 화면에는 버튼과 textview가 하나씩 있다고 하겠습니다

 

 

이 버튼을 클릭했을 때  textview의 문자를 바꾸고 싶습니다.

단, public void onClick메서드를 ui가 있는 MainActivity.class에 작성하는 것이 아닌

EventHandler라는 별도의 클래스에다 작성한다고 하겠습니당

 

 

이럴때  다른 클래스에서 MainActivity.class 에 존재하는 ui를 어떻게 변경시키나요..
익명사용자 님이 2016년 10월 3일 질문

1개의 답변

0 추천

가장 단순하게는 EventHandler class의 생성자에 MainActivity를 파라미터로 주어서 할 수 있습니다. 

public class EventHandler implement View.onClickListener{

     Activity activity
     public EventHandler(Activity activity) {
           this.activity = activity;
     }

    @Override
    public void onClick(View view) {
          //do whatever you want
          //activity.textView1.setText("Something");
    }
}

public class MainActivity extends Activity {
    public onCreate(...) {
        super.onCreate();
        
       findViewById.(R.id.myButton).setOnClickListener(new EventHandler(MainActivity.this));
    }
}

이것보다는  MVP나 MVVM  패턴을 구현해서 뷰와 모델, 이벤트 간에 종속성이 없는 코드를 만드시는게 훨씬 더 좋은 practice 입니다. 여기서 다 다루기는 불가능해서 제 블로그에 도움될 만한 글을 제 블로그에 올려놓았습니다. 한번 참고해 보시죠.
 

ButterKnife는 가고 Data Binding 등장

DataBinding을 이용하여 MVVM 패턴 구현하기

 

 

spark (227,530 포인트) 님이 2016년 10월 3일 답변
...