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

AsyncTask에서 MainActivity클래스의 UI변경 질문

0 추천
MainActivity 에서, 외부클래스로 작성 된 AsyncTask를 호출한다고 가정할게요

그러면

AsyncTask에 있는 onPostExecute매서드에서

MainActivity의  TextView를 변경하고 싶다면

어떤식으로 코드를 짜야하나요..

간단하게 보여주실수 있나요
익명사용자 님이 2016년 10월 9일 질문

1개의 답변

0 추천
public SampleAsyncTask extends AsyncTask<Void, Void, String> {

     SampleAsyncTaskListener listener;

     public SampleAsyncTask(SampleAsyncTaskListener listener) {
           this.listener = listener;
     }

     protected void onPostExecute(String result) {
         if (this.listener != null) {
             this.listener.taskCompleted(result);
         }
     }

     public static interface SampleAsyncTaskListener {
            public void taskCompleted(String result);
     }
}


public class MainActivity extends Activity {
   
       private TextView sampleTextView;

       @Override
       public void onCreate(Bundle b) {
           super.onCreate(b);
           setContentView(...);
 
           sampleTextView = (TextView)findViewById(...);
       }

       private void callSampleAsyncTask() {
              SampleAsyncTask task = new SampleAsyncTask(new SampleAsyncTask.SampleAsyncTaskListener(){
                   @Override
                   public void taskCompleted(String result) {
                          sampleTextView.setText(result);
                   }
              });
       }
}

Activity와 AsyncTask 간에 콜백 인터페이스를 사용하세요.

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