倒计时跳转+pull+httputils+web里面加viewpager轮播

 

 

======================MainActivity===========================

public class MainActivity extends AppCompatActivity {

    private String path  ="http://www.xieast.com/api/news/news.php?page=";
    private int page = 1;
    private PullAdapter pullAadpder;

    private PullToRefreshListView pullListView;
    private HttpUtils httpUtils;
    private List<Goods.DataBean> goodsList = new ArrayList <> ();
    //侧滑
    private DrawerLayout drawerLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView (R.layout.activity_main);
        drawerLayout = findViewById (R.id.dw);

        pullListView = findViewById (R.id.pull);

        //数据解析
        setDataJson();


        pullListView.setOnItemClickListener (new AdapterView.OnItemClickListener () {
            @Override
            public void onItemClick(AdapterView <?> parent, View view, int position, long id) {
               Goods.DataBean bean  = (Goods.DataBean) parent.getAdapter ().getItem (position);

                Intent intent = new Intent (MainActivity.this,WebActivity.class);
               intent.putExtra ("url",bean.getUrl ());

               startActivity (intent);

            }
        });



    }


    private void setDataJson() {

        httpUtils = HttpUtils.getInstance ();
        httpUtils.getDataFromServer (path + page);
        httpUtils.setNetCallback (new HttpUtils.NetCallback () {
            @Override
            public void onSuccess(String result) {
                Gson gson = new Gson ();
                Log.i ("aaaa", result);
                Goods goods = gson.fromJson (result, Goods.class);
                if (page == 1) {
                    goodsList.clear ();
                }
                goodsList.addAll (goods.getData ());
                pullAadpder.notifyDataSetChanged ();
            }
        });
        pullAadpder = new PullAdapter (goodsList, this);
        pullListView.setAdapter (pullAadpder);
        pullListView.setMode (PullToRefreshExpandableListView.Mode.BOTH);
        pullListView.setOnRefreshListener (new PullToRefreshBase.OnRefreshListener2 <ListView> () {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase <ListView> refreshView) {
                //刷新
                page = 1;
                httpUtils.getDataFromServer (path + page);
                pullListView.postDelayed (new Runnable () {
                    @Override
                    public void run() {
                        pullListView.onRefreshComplete ();
                    }
                }, 1000);
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase <ListView> refreshView) {
                //加载
                page++;
                httpUtils.getDataFromServer (path + page);
                pullListView.postDelayed (new Runnable () {
                    @Override
                    public void run() {
                        pullListView.onRefreshComplete ();
                    }
                }, 1000);

            }
        });

    }


}

===============上面是MainActivity========================

 

========================下面是webActivity======================

public class WebActivity extends AppCompatActivity {

    private String spec = "https://api.yunxuekeji.cn/yunxue_app_api/content/getIndexBanner/1";
    private WebView webView;
    private MyAdapter myAdapter;
    int len = 0 ;
    private List<ImageView> vlist = new ArrayList<> ();
    private ViewPager viewPager;


    private Handler handler = new Handler (){
        @Override
        public void handleMessage(Message msg) {
            if (msg.what == 0){
                String json = (String) msg.obj;
                Gson gson = new Gson ();
                Beans beans = gson.fromJson (json, Beans.class);
                List <Beans.BodyBean.ResultBean> result = beans.getBody ().getResult ();

                for (int i = 0 ; i< result.size ();i++){
                    String pic = result.get (i).getBarnerPic ();
                    ImageView imageView = new ImageView (WebActivity.this);
                    vlist.add (imageView);
                    ImageLoader.getInstance ().displayImage (pic,imageView);
                    myAdapter = new MyAdapter (vlist,WebActivity.this);
                    viewPager.setAdapter (myAdapter);
                }
            }else if (msg.what == 1){
                int i = viewPager.getCurrentItem ();
                i++;
                viewPager.setCurrentItem (i);
                handler.sendEmptyMessageDelayed (1,1000);
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView (R.layout.activity_web);
        webView = findViewById (R.id.web);
        viewPager = findViewById (R.id.vp);
        webView.setWebViewClient (new WebViewClient (){

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

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

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

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

        webView.loadUrl (getIntent ().getStringExtra ("url"));

        jieXi(spec);
    }
    //这是轮播图的
    private void jieXi(final String spec) {

        new Thread () {
            @Override
            public void run() {
                try {
                    URL url = new URL (spec);
                    HttpURLConnection connection = (HttpURLConnection) url.openConnection ();
                    connection.setConnectTimeout (3000);
                    connection.setReadTimeout (3000);

                    if (connection.getResponseCode () == 200) {
                        InputStream inputStream = connection.getInputStream ();

                        ByteArrayOutputStream bos = new ByteArrayOutputStream ();

                        byte[] bytes = new byte[1024];

                        while ((len = inputStream.read (bytes)) != -1) {
                            bos.write (bytes, 0, len);
                        }
                        //关流

                        inputStream.close ();
                        bos.close ();

                        String json = bos.toString ();

                        Message message = new Message ();
                        message.what = 0;
                        message.obj = json;
                        handler.sendMessage (message);
                    }
                } catch (Exception e) {
                    e.printStackTrace ();
                }
            }
        }.start ();
    }

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

    @Override
    protected void onPause() {
        super.onPause ();
        handler.removeCallbacksAndMessages(null);
    }
}

==========================================上面是webActivity============================================

 

===================下面是httputils=================================

 

public class HttpUtils {

    private static final HttpUtils ourInstance = new HttpUtils ();

    public static HttpUtils getInstance() {
        return ourInstance;
    }

    private HttpUtils() {
    }



    /**
     * 接口回调实现过程
     * 1. 定义一个接口
     * 2. 声明一个引用
     * 3. 给引用设值
     */
    public interface NetCallback {
        void onSuccess(String result);
    }

    private NetCallback netCallback;

    public void setNetCallback(NetCallback netCallback) {
        this.netCallback = netCallback;
    }
    /**
     * 从网络获取数据
     * 有二中方案
     * 1. Thread+HttpUrlConnection/HttpClient+Handler
     * 2. AsyncTask+HttpUrlConnection/HttpClient
     */
    public void getDataFromServer(String url) {
        new LoadData ().execute (url);
    }
    /**
     * 请求网络数据的类
     */
    class LoadData extends AsyncTask<String, Void, String> {

        @Override
        protected String doInBackground(String... strings) {
            // 网络请求
            try {
                URL url = new URL (strings[0]);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection ();
                connection.setConnectTimeout (3000);
                connection.setReadTimeout (3000);
                if (connection.getResponseCode () == HttpURLConnection.HTTP_OK) {
                    return CharStreams.toString (new InputStreamReader (connection.getInputStream (), "UTF-8"));
                }
            } catch (Exception e) {
                e.printStackTrace ();
            }

            return null;
        }

        @Override
        protected void onPostExecute(String s) {
            if (netCallback != null) {
                netCallback.onSuccess (s);
            }
        }
    }
}

====================上面是httputils============================

 

 

图片的适配器/

 

public class MyAdapter extends PagerAdapter {

    private List<ImageView> vlist;
    private Context context;

    public MyAdapter(List <ImageView> vlist, Context context) {
        this.vlist = vlist;
        this.context = context;
    }

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

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

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

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

//上面是图片的适配器//

 

 

/数据的适配器// 

 

public class PullAdapter extends BaseAdapter {

    private List<Goods.DataBean> goodList;
    private Context context;

    public PullAdapter(List <Goods.DataBean> goodList, Context context) {
        this.goodList = goodList;
        this.context = context;
    }

    private final int ONE_ITEM =1;
    private final int TWO_ITEM =2;

    @Override
    public int getItemViewType(int position) {
        String thumbnail_pic_s = goodList.get (position).getThumbnail_pic_s ();
        String thumbnail_pic_s02 = goodList.get (position).getThumbnail_pic_s02 ();
        String thumbnail_pic_s03 = goodList.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;
        }else {
            return ONE_ITEM;
        }
    }
    @Override
    public int getViewTypeCount() {
        return 3;
    }

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

    @Override
    public Object getItem(int position) {
        return goodList.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 == ONE_ITEM){
            ViewHolderOne holderOne;
            if (convertView == null){
                holderOne = new ViewHolderOne ();
                convertView = View.inflate (context,R.layout.layout_item,null);
                holderOne.text_author_name = convertView.findViewById (R.id.text_author_name);
                holderOne.text_date = convertView.findViewById (R.id.text_date);
                holderOne.imag_picOne = convertView.findViewById (R.id.imag_picOne);

                convertView.setTag (holderOne);
            }else {
                holderOne = (ViewHolderOne) convertView.getTag ();
            }

            holderOne.text_author_name.setText (goodList.get (position).getAuthor_name ());
            holderOne.text_date.setText (goodList.get (position).getDate ());
            ImageLoader.getInstance ().displayImage (goodList.get (position).getThumbnail_pic_s (),holderOne.imag_picOne);
            return convertView;
        }else if (i==TWO_ITEM){
            ViewHolderTwo holderTwo;
            if (convertView == null){
                holderTwo = new ViewHolderTwo ();
                convertView = View.inflate (context,R.layout.layout_item_two,null);
                holderTwo.text_author_name_two = convertView.findViewById (R.id.text_author_name_two);
                holderTwo.text_date_two = convertView.findViewById (R.id.text_date_two);
                holderTwo.imag_picTwo = convertView.findViewById (R.id.imag_picTwo);
                holderTwo.imag_picTwo2 = convertView.findViewById (R.id.imag_picTwo2);
                holderTwo.imag_picTwo3 = convertView.findViewById (R.id.imag_picTwo3);

                convertView.setTag (holderTwo);
            }else {
                holderTwo = (ViewHolderTwo) convertView.getTag ();
            }

            holderTwo.text_author_name_two.setText (goodList.get (position).getAuthor_name ());
            holderTwo.text_date_two.setText (goodList.get (position).getDate ());
            ImageLoader.getInstance ().displayImage (goodList.get (position).getThumbnail_pic_s (),holderTwo.imag_picTwo);
            ImageLoader.getInstance ().displayImage (goodList.get (position).getThumbnail_pic_s02 (),holderTwo.imag_picTwo2);
            ImageLoader.getInstance ().displayImage (goodList.get (position).getThumbnail_pic_s03 (),holderTwo.imag_picTwo3);

            return convertView;
        }
        return null;
    }


    class ViewHolderOne{
        TextView text_author_name,text_date;
        ImageView imag_picOne;
    }


    class ViewHolderTwo{
        TextView text_author_name_two,text_date_two;
        ImageView imag_picTwo,imag_picTwo2,imag_picTwo3;
    }

}

//上面是数据的适配器//

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值