DragSortListView で ListView を作成しているので、行を移動してリストを並べ替えることができます。さて、リストの動作を変更する必要があります。デフォルトでは、リストの順序を変更することはできません (setDragEnabled = false)。また、ユーザーが項目メニューをクリックしたときにのみ、リストの順序を変更できます (setDragEnabled = true)。問題は、DragSortListView を setDragEnabled に true に設定すると、現在画面に表示されていない項目のみが影響を受けることです。
例: リストに 10 個の項目があり、(画面のサイズのために) 画面に 6 個しか表示できない場合、他の 4 個の項目は影響を受けますが、現在画面に表示されている 6 個の項目は影響を受けません。これが DragSortListView の「問題」なのか、それとも ListView の一般的な問題なのかはわかりません。
だから私の質問は: DragSortListView 内のすべてのアイテムからデータを更新するにはどうすればよいですか?
今のところ、これは私が持っているものです
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;
}