LenVane 2016-11-09 09:32 采纳率: 0%
浏览 1390
已结题

我用的PullToRefreshListView设置setOnRefreshListener问题

当item条数超过屏幕滑动会报错,报空
图片说明
图片说明
图片说明

  • 写回答

5条回答 默认 最新

  • LenVane 2016-11-09 09:37
    关注

    我还是吧代码贴出来吧:
    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;
                }
            }
        });
    }   
    

    }

    评论

报告相同问题?

悬赏问题

  • ¥15 求帮我调试一下freefem代码
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图