pulltorefresh综合练习四月版

MHalper页面
public class MHalper extends SQLiteOpenHelper{
//构造器 建立数据库
    public MHalper(Context context) {
        super(context, "lianxi3", null, 1);
    }
//建表
    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
       sqLiteDatabase.execSQL("create table json3(id integer primary key autoincrement,url text not null,json text not null )");
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}
---------------------------------------------------------------------------------------

JsonDao页面

public class JsonDao {
    
    private final MHalper mHalper;
    private SQLiteDatabase db;
  //构造器
    public JsonDao(Context context){
        mHalper = new MHalper(context);
    }
//添加进数据库
    public void insertData(String url,String json){
        db = mHalper.getWritableDatabase();
//先删除  再添加
        db.delete("json3","url=?",new String[]{json});
        ContentValues values = new ContentValues();
        values.put("url",url);
        values.put("json",json);
        db.insert("json3",null,values);
    }
//查找
    public String queryData(String url){
        String json="";
        SQLiteDatabase db = mHalper.getWritableDatabase();
        Cursor cursor = db.query("json3", null, "url=?", new String[]{url}, null, null, null);
        while (cursor.moveToNext()){
            json=cursor.getString(cursor.getColumnIndex("json"));
        }
        return json;
    }
}

---------------------------------------------------------------------------------------------------------------------------------

MApp页面

public class MApp extends Application{
    @Override
    public void onCreate() {
        super.onCreate();
        ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(this).build();
        ImageLoader.getInstance().init(build);
    }
}
---------------------------------------------------------------------------------------------------------------------------------

public class ImageLoaderUtils {
    public static DisplayImageOptions getDisplayImageOption(){
        DisplayImageOptions options = new DisplayImageOptions.Builder()
                .cacheInMemory(true)//设置下载的图片是否缓存在内存中
                .cacheOnDisk(true)
                .considerExifParams(true)  //是否考虑JPEG图像EXIF参数(旋转,翻转)
                .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)//设置图片以如何的编码方式显示
                .bitmapConfig(Bitmap.Config.RGB_565)//设置图片的解码类型//
                .displayer(new RoundedBitmapDisplayer(5))//是否设置为圆角,弧度为多少
//                .displayer(new FadeInBitmapDisplayer(100))//是否图片加载好后渐入的动画时间
                .build();//构建完成
        return options;
    }
}
----------------------------------------------------------------------------------------------------------------------------------

MainActivity 页面

public class MainActivity extends AppCompatActivity {
    String baseUrl="http://www.93.gov.cn/93app/data.do?channelId=0&startNum=";
   private PullToRefreshListView plv;
    private MAdapter mAdapter;
    List<Prodct.DataBean> list =new ArrayList<>();
    private ViewHolder holder;
    int pager=0;
    private JsonDao jsonDao;
    @SuppressLint("HandlerLeak")
    Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if(msg.what==0){
                String ss=(String)msg.obj;
                jsonDao.insertData(baseUrl+pager,ss);
                Gson gson = new Gson();
                Prodct prodct = gson.fromJson(ss, Prodct.class);
                List<Prodct.DataBean> data = prodct.getData();
                list.addAll(data);
                mAdapter.notifyDataSetChanged();
                plv.onRefreshComplete();

            }
        }
    };
    private ImageLoader instance;
    

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        plv = (PullToRefreshListView) findViewById(R.id.plv);
//创建适配器
        mAdapter = new MAdapter();
//调用适配器
        plv.setAdapter(mAdapter);
        jsonDao = new JsonDao(MainActivity.this);
        instance = ImageLoader.getInstance();
//设置plv控件模式
        plv.setMode(PullToRefreshBase.Mode.BOTH);
//得到数据
        getNetData(0);
//plv监听
        plv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
                list.clear();
                getNetData(pager);
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
                pager++;
                getNetData(pager);
            }
        });

    }
//得到数据的方法
    private void getNetData(int pager) {
        if(NetStateUtil.isConn(MainActivity.this)){
            final String urlString=baseUrl+pager;
            new Thread(){
                @Override
                public void run() {
                    super.run();
                    String netJson = NetUtil.getNetJson(urlString);
                    Message message = new Message();
                    message.what=0;
                    message.obj=netJson;
                    handler.sendMessage(message);

                }
            }.start();
        }else{
            Toast.makeText(this, "没网络啦,请检查一下", Toast.LENGTH_SHORT).show();
            String s = jsonDao.queryData(baseUrl + pager);
            if(!s.isEmpty()){
                Gson gson = new Gson();
                Prodct prodct = gson.fromJson(s, Prodct.class);
                List<Prodct.DataBean> data = prodct.getData();
                list.addAll(data);
                mAdapter.notifyDataSetChanged();
                plv.onRefreshComplete();
            }
        }
    }
//适配器
    private class MAdapter extends BaseAdapter{
        @Override
        public int getCount() {
            return list.size();
        }

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

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

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            if(view==null){
                holder = new ViewHolder();
                view=View.inflate(MainActivity.this,R.layout.item,null);
                holder.imageView = view.findViewById(R.id.image);
                holder.textView=view.findViewById(R.id.text);
                view.setTag(holder);
            }else{
                holder=(ViewHolder) view.getTag();
            }
            DisplayImageOptions option = ImageLoaderUtils.getDisplayImageOption();
            instance.displayImage(list.get(i).getIMAGEURL(),holder.imageView,option);
            holder.textView.setText(list.get(i).getTITLE());
            return view;
        }
    }
    class ViewHolder{
        ImageView imageView;
        TextView textView;
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值