2013-04-29 3 views
1

DragSortListView를 사용하여 ListView를 만들고 있으므로 목록을 재정렬하도록 행을 이동할 수 있습니다. 글쎄, 목록의 동작을 수정해야합니다. 기본적으로 목록을 재정렬 할 수 없습니다 (setDragEnabled = false). 사용자가 항목 메뉴를 클릭하면 목록 만 재정렬됩니다 (setDragEnabled = true). 문제는 해당 DragSortListView를 setDragEnabled로 설정하면 현재 이 아닌 항목 만이 화면에 표시됩니다.DragSortListView의 항목 새로 고침

예 : 내 목록에 10 개의 항목이 있지만 화면 크기가 6이므로 화면에 표시 할 수있는 항목이 4 개 밖에 없지만 다른 4 개의 항목은 영향을 받지만 현재 화면에 표시된 6 개 항목은 영향을받지 않습니다. DragSortListView의 "문제"인지 또는 일반적으로 ListView인지는 알 수 없습니다.

내 질문은 : 어떻게 DragSortListView 내부의 모든 항목에서 데이터를 업데이트 할 수 있습니까? 으로

지금이 바로

dslv.setDragEnabled(true); 
adapter.notifyDataSetChanged(); 

전화하여 어댑터의 getView() 드래그은 사용 여부에 따라 그리기 가능 설정에, 내가 대신 루프의

switch(item.getItemId()) { 
    case R.id.list_menu_item1:    
    ArrayList aL = new ArrayList(); 
    aL = (ArrayList) findViewWithTagRecursively(dslv,"_indicator"); 

    for(int i = 0; i < aL.size(); i++){ 
     dslv.setDragEnabled(true); 
     adapter.notifyDataSetChanged(); 
     ImageView list_image = (ImageView)aL.get(i); 
     //aL -> ArrayList with the items (views) in the list. 
     list_image.setImageDrawable(this.getResources().getDrawable 
       (this.getResources().getIdentifier 
         ("drawable/delete_x",null,this.getPackageName()))); 
    } 
    break; 
    default: 
    break; 
} 

답변

0

을 것입니다. notifyDataSetChanged()은 필요에 따라 목록 항목에 대해 getView()을 호출합니다.

관련 문제