안녕하세요..

메모장 어플을 만들고있는데요..

 

리스트 하나에

이미지뷰1개(카메라 앨범에서불러옴)

텍스트뷰3개

이렇게 있습니다..

 

DB에서 불러와서 커서아답터로 리스트뷰에 붙이는데요..

사진을 카메라 앨범에서 불러오게되니깐 리스트가 길어지니깐 로딩이 끝날때까지 멈춰버리더라구요.

그래서 aSyncTask로 디비 호출부분을 넣어서 돌려봤는데요,

doInBackground 안에 DB에서 데이타를 다 가져와서 cursor로 넣구

 onPostExecute 에 setAdapter를 해서 리스트뷰에 바인딩을 했습니다..

이렇게 하니깐 호출되기전에는 ProgressDialog가 떠서 로딩을 하고, 리스트뷰 로딩이 다 끝나면 ProgressDialog가 사라지는것 까진 됐는데요..

 

제가 하고싶은건..  리스트뷰는 바로뜨고 한줄 한줄 순서대로 쌓이는게 실시간으로 보여주게 만들고싶거든요..

아무리 머리를돌리고 이리저리 갖다붙여도 잘 안되더라구요;

 

아래 코드같은 상황에서, 통째로 불러와서 붙이는거 말구, 한줄 한줄 로딩이 끝나는대로 리스트뷰에 붙이는건 어떻게해야할까요?

아래 코드에서 대충 어느 코드를 어디에다 집어넣어야되는지 이해가안되는데 아시는분 설명좀 부탁드립니다~!

 

 

class SubClass extends AsyncTask<String, String, String>{
  ProgressDialog dialog = new ProgressDialog(ListActivitys.this);  
  @Override
  protected void onPreExecute() {
   dialog.setMessage("리스트 로딩중..");
   dialog.show();
   super.onPreExecute();
  }
  @Override
  protected String doInBackground(String... params) {
   mydb = new MyDatabase(getBaseContext());  //리스트 목록을 커서에 담기위해 호출
   db = mydb.getReadableDatabase();
   cursor = db.rawQuery("select * from "+ TABLE_NAME + " order by _id desc;", null);  //_id 역순으로 호출
   startManagingCursor(cursor);
    return null;
  }

  @Override
  protected void onPostExecute(String result) {
   dialog.dismiss();
   lv.setAdapter(new CustomCusorAdapter(ListActivitys.this, cursor));
   mydb.close();
   db.close();
   super.onPostExecute(result);
  }
 
 }