2014-04-27 2 views
0

안녕하십니까 목록보기를 적시에 새로 고침하겠습니다. 여기에 행 추가/삭제가 없습니다. 행의 기존 데이터를 새로 고치기 때문에 새로 고침하고 싶습니다.적시에 목록보기 내용을 새로 고치는 방법

나는이 일을하고 있지만 이것은 나를 위해 작동하지 않습니다.

// Update the Message on the screen to help for troubleshooting. 
private void updateListView() { 
    // Callback to update the message in a second. 
    new CountDownTimer(30000, 1000) { 

     @Override 
     public void onTick(long arg0) { 
      adapter.notifyDataSetChanged(); 
      listView.invalidateViews(); 
      listView.refreshDrawableState(); 
     } 

     @Override 
     public void onFinish() { 

     } 
    }.start(); 
} 
+0

데이터가 변경되어야하는 행이 있습니까? – vjdhama

+0

사용중인 Dataset은 무엇입니까? 어댑터의 getView()를 표시 할 수 있습니까? – akashsr

+0

@vjdhama 새 행이 삽입/삭제되지 않습니다. 기존 행만 업데이트하십시오. – Mick

답변

2

은 핸들러와 notifyDataSetChanged 사용

final Handler handler = new Handler(); 
    final int REFRESH_EVERY_X_MS = 1000; 
    handler.postDelayed(new Runnable() { 

     @Override 
     public void run() { 
      mAdapter.notifyDataSetChanged(); 
      handler.postDelayed(this, REFRESH_EVERY_X_MS); 
     } 
    }, REFRESH_EVERY_X_MS); 

및 중지 할 (그리고 당신이해야) 경우

, 사용 handler.removeCallbacks 및 매개 변수로 동일한 실행 가능을 설정합니다.

+0

notifyDataSetChanged(); UI 스레드에서만 작동합니다. – Skynet

+0

기존 행의 데이터 만 업데이트하고 데이터 집합에서 행을 삽입/삭제하지 않기 때문에이 경우에 유용할까요? – Mick

+0

핸들러도 UI 스레드에서 작동하므로 괜찮습니다. 더 이상 필요하지 않을 때 상쾌하게 멈추는 것을 잊지 마십시오. –

관련 문제