Я использую перетаскивание и сортировку списка, где я хочу щелкнуть элемент, но проблема в том, что когда я сортирую элемент, позиция изменяется. Как решить эту проблему. Я использовал этот пример , https://github.com/commonsguy/cwac-touchlist. Мое кодирование следующим образом:Перетаскивание и сортировка Listview OnItemНазад проблемы android
класса Java Использование DragNDropListView
ListView listView = getListView();
listView.setOnItemClickListener(this);
if (listView instanceof DragNDropListView) {
((DragNDropListView) listView).setDropListener(mDropListener);
((DragNDropListView) listView).setRemoveListener(mRemoveListener);
((DragNDropListView) listView).setDragListener(mDragListener);
}
}
private DropListener mDropListener =
new DropListener() {
public void onDrop(int from, int to) {
ListAdapter adapter = getListAdapter();
if (adapter instanceof DragNDropAdapter) {
((DragNDropAdapter)adapter).onDrop(from, to);
getListView().invalidateViews();
}
}
};
private RemoveListener mRemoveListener =
new RemoveListener() {
public void onRemove(int which) {
ListAdapter adapter = getListAdapter();
if (adapter instanceof DragNDropAdapter) {
((DragNDropAdapter)adapter).onRemove(which);
getListView().invalidateViews();
}
}
};
private DragListener mDragListener =
new DragListener() {
int backgroundColor = 0xe0103010;
int defaultBackgroundColor;
public void onDrag(int x, int y, ListView listView) {
// TODO Auto-generated method stub
}
public void onStartDrag(View itemView) {
itemView.setVisibility(View.VISIBLE);
defaultBackgroundColor = itemView.getDrawingCacheBackgroundColor();
itemView.setBackgroundColor(backgroundColor);
ImageView iv = (ImageView)itemView.findViewById(R.id.ImageView01);
if (iv != null) iv.setVisibility(View.VISIBLE);
}
public void onStopDrag(View itemView) {
itemView.setVisibility(View.VISIBLE);
itemView.setBackgroundColor(defaultBackgroundColor);
ImageView iv = (ImageView)itemView.findViewById(R.id.ImageView01);
if (iv != null) iv.setVisibility(View.VISIBLE);
}
};
private static String[] mListContent={"Item 1", "Item 2", "Item 3"};
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
// TODO Auto-generated method stub
if(position==0)
{
Toast.makeText(this, "You have selected item 1",Toast.LENGTH_SHORT)
.show();
}
if(position==1)
{
Toast.makeText(this, "Item 2",Toast.LENGTH_SHORT)
.show();
}
if(position==2)
{
Intent i=new Intent(a.this,b.class);
startActivity(i);
}
Но при сортировке, конечно, положение меняется, так что я не мог использовать намерение перейти к следующему
activity.How, чтобы исправить это в перетащить и отсортировать список?
Заранее спасибо.
Где и когда ваш разбирают? –