当item条数超过屏幕滑动会报错,报空
我还是吧代码贴出来吧:
public class FragmentMyList extends Fragment{
private PullToRefreshListView refreshListView;
private RadioGroup group1,group2;
private RadioButton button1,button2,button3,button4;
private MyListDataAdapter adapter;
private HttpUtilModel httpUtilModel;
private int page;
private String r,k;
private List<MyListdata>listdatas;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view=getLayoutInflater(savedInstanceState).inflate(R.layout.mylist_layout, null);
r="";
k="";
refreshListView=(PullToRefreshListView) view.findViewById(R.id.mylist_ListView);
group1=(RadioGroup) view.findViewById(R.id.myList_Group1);
group2=(RadioGroup) view.findViewById(R.id.myList_Group2);
button1=(RadioButton) view.findViewById(R.id.mytitle_Btn1);
button2=(RadioButton) view.findViewById(R.id.mytitle_Btn2);
button3=(RadioButton) view.findViewById(R.id.mytitle_Btn3);
button4=(RadioButton) view.findViewById(R.id.mytitle_Btn4);
// adapter=new MyListDataAdapter(getActivity(), listdatas);
initData();
setViews();
return view;
}
private void initData() {
page=1;
httpUtilModel=new HttpUtilModel();
httpUtilModel.getMyListData(page+"", "0", "A",new AsyncCallback() {
@Override
public void onSuccess(Object success) {
listdatas=new ArrayList();
listdatas=(List) success;
setAdapter();
}
@Override
public void onFalied(Object falied) {}} );
}
private void setAdapter() {
if(listdatas!=null){
adapter=new MyListDataAdapter(getActivity(), listdatas);
refreshListView.setAdapter(adapter);
}
}
private void setViews() {
//下拉刷新
refreshListView.setOnRefreshListener(new OnRefreshListener<ListView>() {
@Override
public void onRefresh(PullToRefreshBase<ListView> refreshView) {
httpUtilModel=new HttpUtilModel();
httpUtilModel.getMyListData("1", r, k, new AsyncCallback() {
@Override
public void onSuccess(Object success) {
List<MyListdata>datas=new ArrayList<MyListdata>();
datas=(List<MyListdata>) success;
listdatas.clear();
listdatas.addAll(datas);
if(listdatas!=null){
page=1;
setAdapter();
refreshListView.onRefreshComplete();
}
}
@Override
public void onFalied(Object falied) {}});
}
});
refreshListView.setOnScrollListener(new OnScrollListener() {
private boolean isBottom;
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch(scrollState){
case SCROLL_STATE_FLING:
break;
case SCROLL_STATE_IDLE:
if(isBottom){//到底了
Log.i("TAG", "有没有执行这个方法");
++page;
httpUtilModel=new HttpUtilModel();
httpUtilModel.getMyListData(page+"", r, k, new AsyncCallback() {
@Override
public void onSuccess(Object success) {
List<MyListdata>ml=new ArrayList<MyListdata>();
ml=(List<MyListdata>) success;
Log.i("TAG", "下拉加载有没有数据"+ml);
if(ml.isEmpty()){
Toast.makeText(getActivity(), "已经到头了", Toast.LENGTH_SHORT).show();
return;
}else if(ml!=null){
listdatas.addAll(ml);
setAdapter();
}
}
@Override
public void onFalied(Object falied) {}});
}
break;
case SCROLL_STATE_TOUCH_SCROLL:
break;
}
}
//当滚动时执行该方法
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
if(visibleItemCount==totalItemCount){
isBottom=true;
}else{
isBottom=false;
}
}
});
}
}
log日志一部分:
费解,只要一个屏幕不能显示全部item的话,滑到下边就会报错,都不执行获取数据的方法
忘了说之前下边的bottom设置中是firstVisibleItem+visibleItemCount==totalItemCount也是不行的
你的adapter的getView方法报空指针了,应该是加载更多是adapter更新调用getView是报的错,自己打印看看吧