0
我正在關注this庫以添加拖放功能我的列表視圖。將第一項移動到第二位時一切都很好。但是當我將listview第一個元素移動到第三個應用程序崩潰時。爲了解釋我的情況,我添加了圖像。我認爲這是交換項目線引起的,但我認爲我的代碼是正確的。當我嘗試將第一項替換爲第三項時,應用程序崩潰。任何幫助對我來說都是有價值的。感謝您的幫助。在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錯誤消息。這將幫助我們看到堆棧跟蹤。 –