2012-10-28 4 views
0

원격 서버에 연결하여 데이터를 가져 오는 응용 프로그램이 있습니다.Android ListView ArrayAdapter notifyDataSetChanged() 항상 작동하지 않음

이 데이터에 따르면 내 ListView 연결 개체에서 일부 변경 작업을 수행하고 notifyDataSetChanged() 메서드를 사용하여 ListView를 새로 고치고 변경 사항을 반영합니다.

불행히도이 방법은 항상 목록을 새로 고치는 것은 아닙니다.

목록을 새로 고치기로되어있는 onUpdate()입니다. 만든

내가 목록을 새로 고칠 항상은 아니지만 그것을 수행 할 때마다의 onUpdate() 메소드가 호출
@Override 
public void onUpdate() { 
    runOnUiThread(updateClientsInRangeRunnable()); 
} 

private Runnable updateClientsInRangeRunnable() 
{ 
    Runnable run = new Runnable() { 

     @Override 
     public void run() { 
      updateClientsInRangeList(); 
     } 
    }; 
    return run; 
} 

public void updateClientsInRangeList() 
{ 
    setClientsInRangeList(); 
    listArrayAdapter.notifyDataSetChanged(); 
} 

... 변경은 객체리스트 뷰 represt 내부 속성 변경하지만 변화는 새로 고쳐지지 않습니다 ListView를 다시로드 할 때만

이유가 무엇입니까 ??

답변

0

표시 한 코드에서 알기 힘들지만 setClientsInRangeList()가 실제로 새 데이터를 표시하지 못할 수 있습니까?

+0

실제로 실제로 아무 것도하지 않습니다 ... 유일한 것은 클라이언트 인 레인지 글로벌 목록 (실제로는 이전에 참조 된 동일한 목록)에 대한 참조를 얻는 것입니다. 새 데이터는 내부 속성입니다 ListView에 영향을 미치는 객체 내부 –

관련 문제