2012-03-08 11 views
0

を更新していない私は、AsyncTaskでこれをやっている、すべてが正常に動作しますが私の見解では、notifyDataSetChanged()私の見解

直接更新されませんが、私はちょうど私のListViewのビットをスクロールする場合、データが更新されます

ArrayList<Project> listProject = taskLiteApplication.getListProjectWithStatus(Integer.parseInt(status[0])); 


      //set adapter 
      projectBaseAdapter.replaceData(listProject); 

      //display projects on screen 
      projectBaseAdapter.notifyDataSetChanged(); 

私は私のListView上refreshDrawableState()を呼び出すようにしようとすると、それは同様に を仕事とAsyncTaskから

答えて

2

任意のUIの更新がonPreExecuteとで行う必要がありすぎ)(無効になることはありませんAsyncTaskクラスのメソッド。

したがって、あなたのAsyncTaskが完了した後で、UIを更新する必要があります。したがって、AsyncTaskのonPostExecuteメソッドをオーバーライドし、そのメソッド呼び出しでprojectBaseAdapter.notifyDataSetChanged();

+0

私はこれを知らなかったので、私は試してみます! –

+0

素晴らしい投稿です!ありがとう –

+0

私はrefreshDrawableState()も呼び出さなければならなかったことに注意してください;) –