drawLayout侧滑+PullToRefresh+ViewPage

上拉加载,下拉刷新,多条目,侧滑,轮播

接口
http://172.17.8.100/mobile/exam/findNewList 
https://api.yunxuekeji.cn/yunxue_app_api/content/getIndexBanner/1



===================================MainActivity============================================
public class MainActivity extends AppCompatActivity {

    private DrawerLayout dw;
    private PullToRefreshListView pulltorefresh;
    private ImageView img;
    private List<news.ResultBean.DataBean> list = new ArrayList<>();
    //private List<news.DataBean> list = new ArrayList<>();
    private String spec = "http://172.17.8.100/mobile/exam/findNewList";
   // private int page = 1;
    //private MyAdapter MyAdapter;
    private com.example.dell.chenlin_0822.Adapter.MyAdapter myAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        dw = findViewById(R.id.dw);
        pulltorefresh = findViewById(R.id.pulltorefresh);
        img = findViewById(R.id.img);
        getfromMid();
        getfromnewwork();
        pulltorefresh.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                news.ResultBean.DataBean bean = (news.ResultBean.DataBean) parent.getAdapter().getItem(position);
                Intent intent = new Intent(MainActivity.this, Show.class);
                intent.putExtra("url", bean.getUrl());
                startActivity(intent);
            }
        });
        img.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dw.openDrawer(Gravity.LEFT);
            }
        });

    }

    private void getfromMid() {
        pulltorefresh.setMode(PullToRefreshBase.Mode.BOTH);
        pulltorefresh.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
               // page = 1;
                getfromnewwork();
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
               // page += 1;
                getfromnewwork();
            }
        });
        myAdapter = new MyAdapter(list, MainActivity.this);
        pulltorefresh.setAdapter(myAdapter);
    }

    private void getfromnewwork() {
       //String url = spec + page;
        HttpUtils httputils = HttpUtils.getinstance();
        httputils.getdata(spec);
        httputils.setGetjson(new HttpUtils.getjson() {
            @Override
            public void data(String json) {
                Gson gson = new Gson();
                news news = gson.fromJson(json, news.class);
                List<news.ResultBean.DataBean> data = news.getResult().getData();
//                if (page == 1) {
//                    list.clear();
//               }
                list.addAll(data);
//                MyAdapter.notifyDataSetChanged();
//                pulltorefresh.onRefreshComplete();

            }
        });
    }
}

===================================Adapter============================================
public class MyAdapter extends BaseAdapter{
    private final int ONE_ITEM=0;
    private final int TWO_ITEM=1;
    private List<news.ResultBean.DataBean> list;
    private Context context;
    public MyAdapter(List<news.ResultBean.DataBean> list, Context context) {
        this.list = list;
        this.context = context;
    }

    @Override
    public int getViewTypeCount() {
        return 3;
    }

    @Override
    public int getItemViewType(int position) {
        String thumbnail_pic_s = list.get(position).getThumbnail_pic_s();
        String thumbnail_pic_s02 = list.get(position).getThumbnail_pic_s02();
        String thumbnail_pic_s03 = list.get(position).getThumbnail_pic_s03();
        if(thumbnail_pic_s !=null && thumbnail_pic_s02 == null && thumbnail_pic_s03 ==null){
            return ONE_ITEM;
        }else if(thumbnail_pic_s !=null && thumbnail_pic_s02 != null && thumbnail_pic_s03 != null) {
            return TWO_ITEM;
        }
        return ONE_ITEM;
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        int i = getItemViewType(position);
        if(i==0){
            ViewHolderOne holderOne;
            if(convertView==null){
                convertView  = View.inflate(context, R.layout.one_item, null);
                holderOne = new ViewHolderOne();
                holderOne.text_name=convertView.findViewById(R.id.text_name);
                holderOne.text_news=convertView.findViewById(R.id.text_news);
                holderOne.img_iew=convertView.findViewById(R.id.img_iew);
                convertView.setTag(holderOne);
            }else{
                holderOne = (ViewHolderOne) convertView.getTag();
            }
            holderOne.text_name.setText(list.get(position).getTitle());
            holderOne.text_news.setText(list.get(position).getAuthor_name());
            DisplayImageOptions options = ImageLoaderUtils.getOptions();
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),holderOne.img_iew);
            return convertView;
        }else{
            ViewHolderTwo holderTwo;
            if(convertView==null){
                convertView  = View.inflate(context, R.layout.two_item, null);
                holderTwo = new ViewHolderTwo();
                holderTwo.text_name02=convertView.findViewById(R.id.text_name02);
                holderTwo.text_news02=convertView.findViewById(R.id.text_news02);
                holderTwo.img_view01=convertView.findViewById(R.id.img_view01);
                holderTwo.img_view02=convertView.findViewById(R.id.img_view02);
                holderTwo.img_view03=convertView.findViewById(R.id.img_view03);
                convertView.setTag(holderTwo);
            }else{
                holderTwo = (ViewHolderTwo) convertView.getTag();
            }
            holderTwo.text_name02.setText(list.get(position).getTitle());
            holderTwo.text_news02.setText(list.get(position).getAuthor_name());
            DisplayImageOptions options = ImageLoaderUtils.getOptions();
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s(),holderTwo.img_view01);
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s02(),holderTwo.img_view02);
            ImageLoader.getInstance().displayImage(list.get(position).getThumbnail_pic_s03(),holderTwo.img_view03);
            return convertView;
        }
    }
    class ViewHolderOne{
        TextView text_name,text_news;
        ImageView img_iew;
    }
    class ViewHolderTwo{
        TextView text_name02,text_news02;
        ImageView img_view01,img_view02,img_view03;
    }
}
======================================Show===================================
public class Show extends AppCompatActivity {

    private WebView web_view;
    private ViewPager view_page;
    private String spec1="https://api.yunxuekeji.cn/yunxue_app_api/content/getIndexBanner/1";
    private List<ImageView> list1= new ArrayList<>();
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if(msg.what==0){
                String json = (String) msg.obj;
                Gson gson = new Gson();
                pics pics = gson.fromJson(json, pics.class);
                com.example.dell.chenlin_0822.Bean.pics.BodyBean body = pics.getBody();
                List<com.example.dell.chenlin_0822.Bean.pics.BodyBean.ResultBean> result = body.getResult();
                for (int i = 0; i < result.size(); i++) {
                    String pic = result.get(i).getBarnerPic();
                    ImageView imageView = new ImageView(Show.this);
                    list1.add(imageView);
                    ImageLoader.getInstance().displayImage(pic,imageView);
                    MyAdapter1 myAdapter1 = new MyAdapter1(list1, Show.this);
                    view_page.setAdapter(myAdapter1);
                }
            }else if(msg.what==1){
                int i = view_page.getCurrentItem();
                i++;
                view_page.setCurrentItem(i);
                handler.sendEmptyMessageDelayed(1,1000);
            }
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show);
        web_view = findViewById(R.id.web_view);
        //轮播
        view_page = findViewById(R.id.view_page);
        jiexi(spec1);
        //跳转网页
        String url = getIntent().getStringExtra("url");
        web_view.setWebViewClient(new WebViewClient(){
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
            }

            @Override
            public void onPageCommitVisible(WebView view, String url) {
                super.onPageCommitVisible(view, url);
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
            }
        });
        web_view.loadUrl(url);
    }

    private void jiexi(final String spec1) {
        new Thread(){
            @Override
            public void run() {
                super.run();
                try {
                    URL url = new URL(spec1);
                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                    connection.setConnectTimeout(5000);
                    connection.setReadTimeout(5000);
                    connection.setRequestMethod("GET");
                    if(connection.getResponseCode()==200){
                        InputStream inputStream = connection.getInputStream();
                        ByteArrayOutputStream bos = new ByteArrayOutputStream();
                        byte[] bytes = new byte[1024];
                        int len = 0;
                        if((len=inputStream.read(bytes))!=-1){
                            bos.write(bytes,0,len);
                        }
                        inputStream.close();
                        bos.close();
                        String s = bos.toString();

                        Message message = Message.obtain();
                        message.what=0;
                        message.obj=s;
                        handler.sendMessage(message);

                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }.start();
    }

    @Override
    protected void onPause() {
        super.onPause();
        handler.sendEmptyMessageDelayed(1,1000);
    }

    @Override
    protected void onResume() {
        super.onResume();
        handler.removeCallbacksAndMessages(null);
    }
}
================================轮播adapter1=============================================
public class MyAdapter1 extends PagerAdapter{
    private List<ImageView> list;
    private Context context;
    public MyAdapter1(List<ImageView> list, Context context) {
        this.list = list;
        this.context = context;
    }

    @Override
    public int getCount() {
        return Integer.MAX_VALUE;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view==object;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        ImageView imageView = list.get(position % list.size());
        ViewGroup viewGroup = (ViewGroup) imageView.getParent();
        if(viewGroup != null){
            viewGroup.removeView(imageView);
        }
        container.addView(imageView);
        return imageView;

    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View) object);
    }
}

=============================布局============================
<android.support.v4.widget.DrawerLayout
        android:id="@+id/dw"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
       <!--主界面-->
        <LinearLayout
            android:layout_width="match_parent"
            android:orientation="vertical"
            android:layout_height="match_parent">
            <LinearLayout
                android:layout_width="match_parent"
                android:orientation="horizontal"
                android:layout_height="80dp">
                <ImageView
                    android:id="@+id/img"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:src="@mipmap/ic_launcher"
                    />
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:text="欢迎来主界面"
                    />
            </LinearLayout>

            <com.handmark.pulltorefresh.library.PullToRefreshListView
                android:id="@+id/pulltorefresh"
                android:layout_width="407dp"
                android:layout_height="match_parent">

            </com.handmark.pulltorefresh.library.PullToRefreshListView>
        </LinearLayout>
        <!--侧滑-->
        <LinearLayout
            android:layout_width="240dp"
            android:layout_height="match_parent"
            android:layout_gravity="start">
            <TextView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="这里是侧滑界面"
                android:background="#ff0"
                />
        </LinearLayout>
    </android.support.v4.widget.DrawerLayout>

猜你喜欢

转载自blog.csdn.net/qq_42859231/article/details/81946248