Viewpage轮播+Xlistview多条目+Async异步请求

===================================Maintivity==========================================

public class MainActivity extends AppCompatActivity {


    private String spec="http://www.xieast.com/api/news/news.php?page=";
    private String spec1="http://172.17.8.100/mobile/exam/findCommodityList";
    private List<pics.ResultBean> list1= new ArrayList<>();
    private List<ImageView> list11=new ArrayList<>();
    private int page=1;
    private List<news.DataBean> list = new ArrayList<>();
    private XListView xlistview;
    private MyAdapter myAdapter;
    private ViewPager view_page;
    private Handler handler= new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if(msg.what==0){
                String json1 = (String) msg.obj;
                Log.i("xxx",json1+"");
                Gson gson = new Gson();
                pics pics = gson.fromJson(json1, pics.class);
                com.example.dell.chenlin_0816.Bean.pics.ResultBean result = pics.getResult();
                List<com.example.dell.chenlin_0816.Bean.pics.ResultBean.PicsBean> pics1 = result.getPics();
                for (int i = 0; i < pics1.size(); i++) {
                    String pic = pics1.get(i).getPic();
                    ImageView imageView = new ImageView(MainActivity.this);
                    list11.add(imageView);
                    ImageLoader.getInstance().displayImage(pic,imageView);
                    MyAdapter1 myAdapter1 = new MyAdapter1(list11, MainActivity.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_main);
        //view_page = findViewById(R.id.view_page);
        xlistview = findViewById(R.id.xlistview);
        ImageLoader imageLoader = ImageLoader.getInstance();
        getfromMid();
        getfromnetwork();
        //轮播
        view_page = findViewById(R.id.view_page);
        jiexi(spec1);


        xlistview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                news.DataBean bean = (news.DataBean) parent.getAdapter().getItem(position);
                Intent intent = new Intent(MainActivity.this, Show.class);
                intent.putExtra("url",bean.getUrl());
                startActivity(intent);
            }
        });
    }

    private void jiexi(final String spec1) {
        new Thread(){
            @Override
            public void 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;
                        while((len=inputStream.read(bytes))!=-1){
                            bos.write(bytes,0,len);
                        }
                        inputStream.close();
                        bos.close();
                        String s = bos.toString();

                        Message message = new Message();
                        message.what=0;
                        message.obj=s;
                        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);
    }

    private void getfromMid() {
        xlistview.setPullLoadEnable(true);
        xlistview.setPullRefreshEnable(true);
        xlistview.setXListViewListener(new XListView.IXListViewListener() {
            @Override
            public void onRefresh() {
                page = 1;
                getfromnetwork();
            }

            @Override
            public void onLoadMore() {
                page+=1;
                getfromnetwork();
            }
        });
        myAdapter = new MyAdapter(list,MainActivity.this);
        xlistview.setAdapter(myAdapter);
    }

    private void getfromnetwork() {
        String url = spec + page;
        HttpUtils httpUtils = HttpUtils.getinstance();
        httpUtils.getdata(url);
        httpUtils.setGetjson(new HttpUtils.getjson() {
            @Override
            public void data(String json) {
                Gson gson = new Gson();
                news news = gson.fromJson(json, news.class);
                List<com.example.dell.chenlin_0816.Bean.news.DataBean> data = news.getData();
                if(page==1){
                    list.clear();
                }
                list.addAll(data);
                myAdapter.notifyDataSetChanged();

                    xlistview.stopRefresh();

                    xlistview.stopLoadMore();

            }
        });
    }
}



===================================HttpUtils==========================================

public class HttpUtils {
    private static HttpUtils httpUtils;
    private getjson getjson;

    public static HttpUtils getinstance(){
        if(httpUtils == null){
             httpUtils = new HttpUtils();
        }
        return httpUtils;
    }

    public void getdata(String url){
        MyAsync myAsync = new MyAsync();
        myAsync.execute(url);

    }


    private class MyAsync extends AsyncTask<String,Integer,String>{
        @Override
        protected String doInBackground(String... params) {
            String uu=params[0];
            try {
                URL url = new URL(uu);
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setReadTimeout(5000);
                connection.setConnectTimeout(5000);
                if(connection.getResponseCode()==200){
                    return CharStreams.toString(new InputStreamReader(connection.getInputStream(),"UTF-8"));
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            getjson.data(s);
        }
    }

    //接口
    public interface getjson{
        void data(String json);
    }


    //向外提供一个接口
    public void setGetjson(getjson getjson){
        this.getjson=getjson;
    }
}


=====================================多条目adadpter========================================
public class MyAdapter extends BaseAdapter{

    private final int ONE_ITEM=1;
    private final int TWO_ITEM=2;
    private List<news.DataBean> list;
    private Context context;
    public MyAdapter(List<news.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==ONE_ITEM){
            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;
    }
}

=====================================轮播adadpter========================================

public class MyAdapter1 extends PagerAdapter{
private List list;
private Context context;

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

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

@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());
    ViewParent parent = imageView.getParent();
    container.addView(imageView);
    return imageView;
}

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

}

================================webview—-Show跳转=======================================
public class Show extends AppCompatActivity {

private WebView web_view;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_show);
    web_view = findViewById(R.id.web_View);
    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);
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值