Я следую за this библиотекой, чтобы добавить функцию перетаскивания моего списка. Все хорошо, когда перемещение первого предмета на второе место. Но когда я перемещаю первый элемент списка в третье место, происходит сбой приложений. Чтобы объяснить свою ситуацию, я добавил изображение. Все, что я думаю, это вызвано в строке Swap items, но я думаю, что мой код прав. Когда я пытаюсь заменить первый элемент на третий элемент, приложение рушится. Любая помощь будет для меня ценной. Спасибо за помощь.Элементы Drag Drop and Reorder в ListView
Вот мой адаптер код.
public class NavigationDrawerListViewAdapter extends BaseAdapter implements Communicator,Swappable{
private LayoutInflater mInflater;
public ArrayList<NavigationDrawerFragment.ListItem> myItems;
public NavigationDrawerListViewAdapter(Context activity, ArrayList<NavigationDrawerFragment.ListItem> listItemElements) {
mInflater = (LayoutInflater) activity.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
myItems = listItemElements;
}
@Override
public int getCount() {
return myItems.size();
}
@Override
public NavigationDrawerFragment.ListItem getItem(int position) {
return myItems.get(position);
}
@Override
public long getItemId(int position) {
return myItems.get(position).hashCode();
}
@Override
public boolean hasStableIds(){
return true;
}
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
View v = convertView;
final ViewHolder holder;
final NavigationDrawerFragment.ListItem i = myItems.get(position);
if (i != null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.navigation_drawer_listview_simple, null);
holder.text = (TextView) convertView.findViewById(R.id.textView123);
holder.text.setText(i.textdata);
convertView.setTag(holder);
parent.setTag(holder);
holder.text.setTag(position);
}
return convertView;
}
@Override
public void respond(String name) {
}
@Override
public void sendData(String url, String type) {
}
@Override
public void sendMapValues(Geometry featureGeometry, Symbol featureSymbol, Object featureAttrValues) {
//doinNothing
}
@Override
public void swapItems(int i, int i2) {
NavigationDrawerFragment.ListItem obj1 = myItems.get(i);
myItems.remove(i);
myItems.add(i2,obj1);
this.notifyDataSetChanged();
}
class ViewHolder {
TextView text;
}
}
Сбой приложения, пожалуйста, покажите сообщения об ошибках logcat. Это поможет нам увидеть стек. –