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));
    }

    }

  • 相关阅读:
    nyoj-68-三点顺序-计算几何
    zoj--1089--Lotto---DFS VS 暴力求解
    zoj----1090---The Circumference of the Circle---数学几何
    nyoj-阶乘0
    nyoj-回文字符串--动态规划
    nyoj-最长公共子序列---动态规划
    hdu-1285确定比赛名次---拓扑排序
    等式数量---hash算法
    学生学籍管理系统
    2020.2.9 解决Zabbix agent is not available&windows下安装zabbix-agent 主机部署监控
  • 原文地址:https://www.cnblogs.com/wsq110/p/7518990.html
Copyright © 2011-2022 走看看