zoukankan      html  css  js  c++  java
  • Android下拉刷新,上拉加载

    //上拉加载,下拉刷新

    package com.bwie.xlistviewdemo1;

    import android.os.AsyncTask;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.Toast;

    import com.bwie.adapters.MyBaseAdapter;
    import com.bwie.beans.News;
    import com.bwie.beans.SuperClass;
    import com.google.gson.Gson;

    import java.util.ArrayList;

    public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener{
    private XListView xListView;
    private ArrayList<News> newslist;
    private MyBaseAdapter myAdapter;
    private final static String JSON_URL = "https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    xListView = (XListView) findViewById(R.id.xlv);
    xListView.setPullLoadEnable(true);//设置可以刷新和加载
    xListView.setXListViewListener(this);
    //刚进来,加载第一版数据
    new AsyncTask<String,Integer,String>(){
    @Override
    protected String doInBackground(String... params) {
    //线程加载数据
    String str = new NetWorkUtils().getJsonByUrlConnection(JSON_URL);

    return str;
    }

    @Override
    protected void onPostExecute(String s) {
    super.onPostExecute(s);
    SuperClass superClass = new Gson().fromJson(s,SuperClass.class);
    newslist = superClass.getNewslist();//得到第一页数据
    myAdapter = new MyBaseAdapter(newslist, MainActivity.this);
    xListView.setAdapter(myAdapter);

    }
    }.execute();

    }

    /**
    * 停止刷新或加载时
    */
    public void onLoad(){
    xListView.stopRefresh();
    xListView.stopLoadMore();
    xListView.setRefreshTime("刚刚");
    }

    /**
    * 下拉会回调此方法,在次方法中写刷新的代码
    */
    @Override
    public void onRefresh() {
    Toast.makeText(this,"刷新",Toast.LENGTH_SHORT).show();

    new AsyncTask<String,Integer,String>(){
    @Override
    protected String doInBackground(String... params) {
    //线程加载数据
    String str = new NetWorkUtils().getJsonByUrlConnection(JSON_URL);

    return str;
    }

    @Override
    protected void onPostExecute(String s) {
    super.onPostExecute(s);
    SuperClass superClass = new Gson().fromJson(s,SuperClass.class);
    newslist = superClass.getNewslist();//得到第一页数据
    myAdapter = new MyBaseAdapter(newslist, MainActivity.this);
    xListView.setAdapter(myAdapter);
    onLoad();
    }
    }.execute();

    }

    /**
    * 上拉到listview的最后一条显示出来,然后会调用此方法,在此方法中加载下一页数据
    */
    @Override
    public void onLoadMore() {
    new AsyncTask<String,Integer,String>(){
    @Override
    protected String doInBackground(String... params) {
    //线程加载数据
    String str = new NetWorkUtils().getJsonByUrlConnection(JSON_URL);

    return str;
    }

    @Override
    protected void onPostExecute(String s) {
    super.onPostExecute(s);
    SuperClass superClass = new Gson().fromJson(s,SuperClass.class);
    ArrayList<News> newData = superClass.getNewslist();//得到下一页数据(比如2,3,4.。。)
    newslist.addAll(newData);//把新的一页的数据集合,加到总的数据集合
    myAdapter.notifyDataSetChanged();//刷新适配器,展示全部数据
    onLoad();
    }
    }.execute();
    }
    }

    //请求网络加载图片

    ImageLoaderConfiguration config = ImageLoaderConfiguration.createDefault(this);

    ImageLoader.getInstance().init(config

    //网络图片请求代码//通过imageloader加载图片,显示在次行

     ImageLoader.getInstance().displayImage(newsObj.getPicUrl(),holder2.imageView);

     

    //判断网络是否可用

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //进入系统判读网络
    connManager = (ConnectivityManager) this.getSystemService(CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connManager.getActiveNetworkInfo();
    int type = activeNetworkInfo.getType();//当前网络具体类型(联通,电信,移动2G3G4G)


    if(activeNetworkInfo!=null && activeNetworkInfo.isAvailable()){//有网
    NetworkInfo.State state1 = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();//得到是否是wifi网络
    if(NetworkInfo.State.CONNECTED==state1){
    Toast.makeText(this,"您是wifi,放心使用",Toast.LENGTH_SHORT).show();
    //网络请求的代码.....


    }else{
    NetworkInfo.State state2 = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();//得到是否是移动网络
    if(NetworkInfo.State.CONNECTED==state2){//掏钱的移动数据
    new AlertDialog.Builder(MainActivity.this)
    .setTitle("网络")
    .setMessage("当前是移动数据")
    .setPositiveButton("土豪访问", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
    //继续编写网络请求的代码


    }
    })
    .setNegativeButton("停止访问",null)
    .show();
    }
    }


    }else{
    Toast.makeText(this,"您当前没有网络,请检查",Toast.LENGTH_SHORT).show();
    // 跳转到无限wifi网络设置界面
    startActivity(new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS));
    }

    }

  • 相关阅读:
    优酷网的架构学习笔记
    同网关劫持与不同网关劫持实例
    .flv和.swf格式文件flash播放器代码
    让IE6显示透明PNG背景图片
    新手买车的九大原则
    服务器不支持FLV视频播放的原因
    功能强大易用的Web视频播放器——Flowplayer(使用方法及演示)
    一个不错的媒体网页播放器(国外的)
    网页表格中单元格线条及边框的设置
    20多个漂亮的使用jQuery交互的网站设计欣赏
  • 原文地址:https://www.cnblogs.com/wsq110/p/7518990.html
Copyright © 2011-2022 走看看