ListView 点击加载更多出现异常(java.lang.IndexOutOfBoundsException: Invalid index 10, size is 10)

来源:互联网 发布:舞蹈教学软件 编辑:程序博客网 时间:2024/05/22 09:00

今天写项目加载更多时,发现点击进度progressbar时会报异常:java.lang.IndexOutOfBoundsException: Invalid index 10, size is 10,原来lsitview的索引原本是从0开始的,但是通过addHeeaderView以后,添加的下拉刷新的头变成listview的索引0,而以前的索引则相对加1,原本listview只有十条数据,最大索引为9,而现在索引变为10了,索引会报数组越界的异常。于是就尝试了一下,其实也很简单就是捕捉一下异常而已。内容如下
@Override
public Object getItem(int position) {
SearchBean searchBean = null;
try {
searchBean=searchList.get(position);
} catch (Exception e) {
e.printStackTrace();

    }        return searchBean;}

然后当你点击条目进行跳转时如果报空指针异常时就对你的setOnItemClickListener里面的代码进行捕捉异常我的做法为

search_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                Intent intent = new Intent(SearchAty.this, DetailAty.class);                searchBean = (SearchBean) searchAdp.getItem(position);                int gid = 0;                try {                    gid = searchBean.getId();                    String gamename = searchBean.getTitle();                    @SuppressWarnings("unused")                    String flashurl = searchBean.getFlashurl();                    String img_url = searchBean.getIcon();                    intent.putExtra("id", gid);                    intent.putExtra("title", gamename);                    intent.putExtra("flashurl", searchBean.getFlashurl());                    intent.putExtra("img_url", img_url);                    startActivity(intent);                } catch (Exception e) {                    e.printStackTrace();                }            }        });

或者是判断view的类型如果不是Listview直接return

    search_lis.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                if (view instanceof TextView) {                    return;                }                Intent intent = new Intent(SearchAty.this, DetailAty.class);                searchBean = (SearchBean) searchAdp.getItem(position);                int gid = 0;                try {                    gid = searchBean.getId();                    String gamename = searchBean.getTitle();                    @SuppressWarnings("unused")                    String flashurl = searchBean.getFlashurl();                    String img_url = searchBean.getIcon();                    intent.putExtra("id", gid);                    intent.putExtra("title", gamename);                    intent.putExtra("flashurl", searchBean.getFlashurl());                    intent.putExtra("img_url", img_url);                    startActivity(intent);                } catch (Exception e) {                    e.printStackTrace();                }            }        });

转载时请注明出处:http://blog.csdn.net/u014452224

0 0
原创粉丝点击