viewpager 加载更多

来源:互联网 发布:死神漫画单行本淘宝 编辑:程序博客网 时间:2024/06/03 16:08
public class MainActivity extends AppCompatActivity {


    String url="http://v3.wufazhuce.com:8000/api/reading/index/?version=3.5.0&platform=android";
    private ViewPager viewPager;


    private Handler myHanler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            int index=viewPager.getCurrentItem();
            index++;
            viewPager.setCurrentItem(index);


            sendEmptyMessageDelayed(0,500);


        }
    };
    private GridView gridView;
    private PullToRefreshScrollView psv;
    private List<Result.DataBean.QuestionBean> questionList=new ArrayList<>();
    private MyGdAdapter adapter1;
    private int operType=1;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        viewPager = findViewById(R.id.vp);
        gridView = findViewById(R.id.gv);
        psv = findViewById(R.id.psv);


        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Intent intent=new Intent(MainActivity.this,Main2Activity.class);
                intent.putExtra("web_url","http://www.baidu.com");
                startActivity(intent);
            }
        });


        initpsv();


        if(NetStateUtil.isConn(this)){
            MyTask task=new MyTask(new MyTask.Icallbacks() {
                @Override
                public void updateUiByjson(String jsonstr) {
                    List<String> picUrls=new ArrayList<>();
                    Gson gson=new Gson();
                    Result result = gson.fromJson(jsonstr, Result.class);


                    List<Result.DataBean.QuestionBean> question = result.getData().getQuestion();
                    List<Result.DataBean.EssayBean> essay = result.getData().getEssay();
                    for (int i = 0; i <essay.size() ; i++) {
                        String data=essay.get(i).getAuthor().get(0).getWeb_url();
                        picUrls.add(data);
                    }


                    //设置轮播图
                    MyAdapter adapter=new MyAdapter(picUrls,MainActivity.this);
                    viewPager.setAdapter(adapter);
                    //发送消息
                    myHanler.sendEmptyMessageDelayed(0,500);


                    //设置列表数据
                    MyGdAdapter adapter1=new MyGdAdapter(question,MainActivity.this);
                    gridView.setAdapter(adapter1);


                }
            });
            task.execute(url);


        }else{
            NetStateUtil.showNoNetWorkDlg(this);
        }












    }


    private void requestNetData() {
        MyTask task=new MyTask(new MyTask.Icallbacks() {
            @Override
            public void updateUiByjson(String jsonstr) {
                Gson gson=new Gson();
                Result result = gson.fromJson(jsonstr, Result.class);
                List<Result.DataBean.QuestionBean> question = result.getData().getQuestion();
                if(operType==1){
                    questionList.clear();
                }
                questionList.addAll(question);
                //设置列表数据
                setAdapter();


                psv.onRefreshComplete();//关闭
            }
        });
        task.execute(url);
    }
    public void setAdapter(){
        if(adapter1==null){
            adapter1 = new MyGdAdapter(questionList,MainActivity.this);
            gridView.setAdapter(adapter1);
        }else{
            adapter1.notifyDataSetChanged();
        }


    }


    private void initpsv() {
        psv.setMode(PullToRefreshBase.Mode.BOTH);
        psv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {
                operType=1;
                requestNetData();
            }


            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) {
                //加载更多
                operType=2;
                requestNetData();


            }
        });
    }
}
原创粉丝点击