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

Timer 구현시 list.setAdapter() 접근이 안되나요?

0 추천
Timer 타이머 = new Timer();
 TimerTask 작업 = new TimerTask(){
 @Override
 public void run(){
  목록.clear();   
  sqlDB = myHelper.getReadableDatabase();
  cursor = sqlDB.rawQuery("SELECT * FROM 테이블 ORDER BY RANDOM() limit 10;", null);
  while (cursor.moveToNext()) {
   목록.add(cursor.getString(0) + ","+cursor.getString(1) + ","+cursor.getString(2) + ","+cursor.getString(3) + "," + cursor.getString(4));
  }   
  cursor.close();   
  sqlDB.close();   
  어댑터뭉치 = new ArrayAdapter<String>(MainActivity.this ,android.R.layout.simple_list_item_1,목록);   
  리스트뷰1.setAdapter(어댑터뭉치);
 }
 };
타이머.schedule(작업, 10000);

 

 

 

  리스트뷰1.setAdapter(어댑터뭉치);

이 문구에서 에러가 걸립니다. run() 함수에서는 직접 리스트뷰로 데이타를 보낼 방법이 없나 보네요.

방법이 없을까요?
익명사용자 님이 2015년 10월 10일 질문

1개의 답변

0 추천
AsyncTask를 사용하셔서 데이터베이스에서 데이터를 가져와서 listview에 바인딩하는 것을 구현하시고요..

TimerTask의 run 메서드에서 AsyncTask를 생성하고 실행시키는 구조로 구현을 하시면 될 겁니다.
mcsong (44,040 포인트) 님이 2015년 10월 11일 답변
감사합니다. 핸들로 해결했습니다. AsyncTask 로도 하는 방법이 있군요.
...