我正在ArrayIndexOutOfBoundsException使用以下给定的自定义实现ArrayAdapter启用过滤.我看到过滤代码返回正确的结果集,但是当过滤后呈现视图时,我得到一个异常.我在这做错了什么.任何帮助都是适用的.
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Filter;
import android.widget.ImageView;
import android.widget.TextView;
import com.syntrio.iwm.act.R;
public class IWMArrayAdapter<T> extends ArrayAdapter<T>{
Activity activity;
List<T> mItems;
String[] icons;
boolean isArrowNeeded=false;
boolean isIconNeeded=false;
private ItemsFilter mFilter;
public IWMArrayAdapter(Activity context,List<T> items) {
super(context, R.layout.item_row,items);
activity=context;
mItems=items;
}
public void setIcons(String[] iconList){
if(iconList!=null && iconList.length>0){
icons=iconList;
isIconNeeded=true;
}
}
public void setArrowNeeded(){
isArrowNeeded=true;
}
@Override
public View getView(int position, View convertView,ViewGroup parent) { …Run Code Online (Sandbox Code Playgroud) 我正试图通过onclick动作从listview中删除一个项目.但我得到arrayindexoutofbound异常.我从11个大小的数组中删除了项目,但它仍然试图获得11.项目.
public void onClick(View v) {
data.remove(getItemIndexByID(filteredData.get(position).getID()));
filteredData.remove(position);
notifyDataSetChanged();
flipMenu(lastHolder, 1);
showPopup("Item Deleted");
}
Run Code Online (Sandbox Code Playgroud)
日志:
11-26 17:16:32.159: E/AndroidRuntime(26991): FATAL EXCEPTION: main
11-26 17:16:32.159: E/AndroidRuntime(26991): java.lang.IndexOutOfBoundsException: Invalid index 10, size is 10
11-26 17:16:32.159: E/AndroidRuntime(26991): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
11-26 17:16:32.159: E/AndroidRuntime(26991): at java.util.ArrayList.get(ArrayList.java:304)
11-26 17:16:32.159: E/AndroidRuntime(26991): at com.innovationbox.passlocker.adapters.ListViewAdapter.getView(ListViewAdapter.java:100)
11-26 17:16:32.159: E/AndroidRuntime(26991): at android.widget.AbsListView.obtainView(AbsListView.java:2143)
11-26 17:16:32.159: E/AndroidRuntime(26991): at android.widget.ListView.makeAndAddView(ListView.java:1831)
11-26 17:16:32.159: E/AndroidRuntime(26991): at android.widget.ListView.fillDown(ListView.java:674)
11-26 17:16:32.159: E/AndroidRuntime(26991): at android.widget.ListView.fillGap(ListView.java:638)
11-26 17:16:32.159: E/AndroidRuntime(26991): at android.widget.AbsListView.trackMotionScroll(AbsListView.java:4930)
11-26 17:16:32.159: E/AndroidRuntime(26991): at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:4087)
11-26 17:16:32.159: E/AndroidRuntime(26991): at …Run Code Online (Sandbox Code Playgroud)