如题,我刚开始加载4条数据
for(int i=0;i<=3;i++){
Map<String, Object> map = new HashMap<String, Object>();
map.put("title", ContentProvider.getContent().get(i).detailTitle);
map.put("time", ContentProvider.getContent().get(i).detailDate);
map.put("context", ContentProvider.getContent().get(i).detailContext);
items1.add(map);
}之后点击按钮加载 5条 if(count+5<datasize){

for(int i=count+1;i<count+5;i++){

Map<String, Object> mapi = new HashMap<String, Object>();
mapi.put("title", ContentProvider.getContent().get(i).detailTitle);
mapi.put("time", ContentProvider.getContent().get(i).detailDate);
mapi.put("context", ContentProvider.getContent().get(i).detailContext);
items1.add(mapi);

System.out.println(count+"===count");
System.out.println(items1.size()+"好纠结");
}count=5的时候就越界了,逻辑不强,求大神指导

解决方案 »

  1.   

    你的count是什么?每一次加载的个数么?
    初始化加载的时候获得了4条数据 i=3了
    然后你第二个循环i是从6开始的?
    能把代码和报错发全点么。
      

  2.   

    报错是list越界了,错误是加载5条的时候map。put出错了。  count是代表第几条数据了。也就是list的下标吧。
    loadMoreButton.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {

    loadMoreButton.setText("正在加载...");//设置loading文字
    handler.postDelayed(new Runnable() {

    @Override
    public void run() {

    loadMoreData();

    infoadapter.notifyDataSetChanged();
    loadMoreButton.setText("加载更多");//恢复按钮文字
    }
    }, 2000);
    }
    这是点击按钮以后加载5条。
      

  3.   

    或者这样分析。我定义private List<Map<String, Object>> items1 = new ArrayList<Map<String, Object>>();itmes1 先从我已有的一个保存数据的list中取4条数据显示在listview中,然后,在从list中取第5-10条数据,接在listview下面继续显示。