2014-07-25 1 views
1

새 값으로 목록을 imageadapter에 보내고 값을 정렬하고 이미지를 alls로 반환합니다. 그러나 내가 물건을 새로 고치고 싶을 때, 낡은 것들은 그대로 유지되고 새로운 것들은 결코 화면에 도착하지 않습니다. Ive는 그리드를 다시로드하는 많은 다른 방법을 시도했지만 작동하지 않습니다.새 이미지로 gridview를 업데이 트하는 방법

+0

새 데이터를 표시하려면 어댑터에서 notifydatasetchanged()를 호출해야합니다. –

답변

2

맞춤 어댑터에 다음 방법을 추가하십시오. ImageAdapter.

// Call it once , first time when you want to pass the data to adapter 
public void setImageList(List<YOUR DATA TYPE> imagelist) { 
    this.imagelist = imagelist; 
} 

// Call this method whenever new data is to be added to existing list. 
public void updateImageList(List<YOUR DATA TYPE> newImagelist) { 

    if(this.imagelist != null){ 
     this.imagelist.addAll(newImagelist); 
    }else{ 
     this.imagelist = imagelist; 
    } 

    notifyDataSetChanged(); 
} 

새 데이터가 다운로드되면이를 호출하십시오.

+0

감사 남자는 완벽하게 작동합니다 :) –

+0

당신은 당신을 도울 다행, 환영합니다. –

1

모든 이미지 (이전 이미지와 새로운 이미지 포함)로 새 이미지 어댑터를 만들고이를 gridview에 지정하십시오. 이렇게하면 문제없이 작동합니다. 그 전화 후

adapter.notifyDataSetChanged(); 

잘 작동합니다.

+0

어댑터 = 새 이미지 어댑터 (this, imagelist, imageBool, resourceName, docBool); adapter.NotifyDataSetChanged(); gridview.Adapter = adapter; adapter.NotifyDataSetChanged(); 이것이 작동하지 않는다면 : –

+0

gridview.setAdapter (adapter);를 사용하여 어댑터를 설정하십시오. 여기에 샘플 코드가 있는데 다음과 같이 보입니다 : adapter = new ImageAdapter (activity, employees , 부서, 편지) grid.setAdapter (어댑터) adapter.notifyDataSetChanged();.! 은 아마 지금 작동 – lui1000

관련 문제