数据缓存 dao类操作
来源:互联网 发布:天刀淘宝代购是什么 编辑:程序博客网 时间:2024/06/16 13:01
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.ScrollView;
import android.widget.TextView;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshScrollView;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import one.bw.com.yaowen.adapter.Mybase;
import one.bw.com.yaowen.adapter.Mypager;
import one.bw.com.yaowen.bean.Mybean;
import one.bw.com.yaowen.bean.News;
import one.bw.com.yaowen.dao.MyDao;
import one.bw.com.yaowen.util.JieKou;
import one.bw.com.yaowen.util.NetgetcountUtil;
public class MainActivity extends AppCompatActivity {
int i=1;
int j=0;
private ListView lv;
private ViewPager vp;
private MyDao myDao;
ArrayList<Mybean.NewslistBean> list = new ArrayList<>();
private PullToRefreshScrollView refreshScroll;
ArrayList<News> nlist = new ArrayList<>();
Handler h=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
j++;
vp.setCurrentItem(j);
h.sendEmptyMessageDelayed(0,2000);
}
};
String path="https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=1";
private TextView title;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lv);
vp = (ViewPager) findViewById(R.id.vp);
title = (TextView) findViewById(R.id.title2);
refreshScroll = (PullToRefreshScrollView) findViewById(R.id.refreshScroll);
getViewpagerImage();
vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
title.setText(nlist.get(position%nlist.size()).getTitle());
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
lv.setFocusable(false);
SQLiteDatabase db = openOrCreateDatabase("wc.db", MODE_PRIVATE, null);
myDao = new MyDao(db);
boolean kai = myDao.getBoolean1();
if(kai){
String json = myDao.getJson1();
Gson gson = new Gson();
Mybean mybean = gson.fromJson(json, Mybean.class);
List<Mybean.NewslistBean> newslist = mybean.getNewslist();
list.clear();
list.addAll(newslist);
setAdapter();
refreshScroll.onRefreshComplete();
Date date = new Date(System.currentTimeMillis());
SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
refreshScroll.setLastUpdatedLabel(sim.format(date));
}else {
getFristContent();
}
refreshScroll.setMode(PullToRefreshBase.Mode.BOTH); //设置上下拉均允许
refreshScroll.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ScrollView> refreshView) {
getFristContent();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ScrollView> refreshView) {
i++;
String path1="https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page="+i;
NetgetcountUtil.getcount(path1, MainActivity.this, new JieKou() {
@Override
public void chuan(String json) {
if(!json.equals("")) {
myDao.deleteJson();
myDao.addJson(json, path);
}
Gson gson = new Gson();
Mybean mybean = gson.fromJson(json, Mybean.class);
List<Mybean.NewslistBean> newslist = mybean.getNewslist();
list.addAll(0,newslist);
setAdapter();
refreshScroll.onRefreshComplete();
Date date = new Date(System.currentTimeMillis());
SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
refreshScroll.setLastUpdatedLabel(sim.format(date));
}
});
}
});
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(MainActivity.this, Main2Activity.class);
intent.putExtra("url",list.get(i).getUrl());
startActivity(intent);
}
});
}
private void getViewpagerImage() {
NetgetcountUtil.getcount("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=1", MainActivity.this, new JieKou() {
@Override
public void chuan(String json) {
Gson gson = new Gson();
Mybean mybean = gson.fromJson(json, Mybean.class);
List<Mybean.NewslistBean> newslist = mybean.getNewslist();
for (Mybean.NewslistBean n:newslist){
News news = new News(n.getPicUrl(), n.getTitle());
nlist.add(news);
}
Mypager mypager = new Mypager(nlist, MainActivity.this);
vp.setAdapter(mypager);
title.setText(nlist.get(0).getTitle());
h.sendEmptyMessageDelayed(1000,2000);
}
});
}
private void getFristContent() {
NetgetcountUtil.getcount(path, MainActivity.this, new JieKou() {
@Override
public void chuan(String json) {
if(!json.equals("")) {
myDao.deleteJson();
myDao.addJson(json, path);
}
Gson gson = new Gson();
Mybean mybean = gson.fromJson(json, Mybean.class);
List<Mybean.NewslistBean> newslist = mybean.getNewslist();
list.clear();
list.addAll(newslist);
setAdapter();
refreshScroll.onRefreshComplete();
Date date = new Date(System.currentTimeMillis());
SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
refreshScroll.setLastUpdatedLabel(sim.format(date));
}
});
}
private void setAdapter() {
Mybase mybase=null;
if(mybase==null) {
mybase=new Mybase(list, MainActivity.this);
lv.setAdapter(mybase);
}else{
mybase.notifyDataSetChanged();
}
}
}
//dao类 数据库编写
package one.bw.com.yaowen.dao;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
/**
* Created by Administrator on 2017/10/20/020.
*/
public class MyDao {
SQLiteDatabase db;
public MyDao(SQLiteDatabase db) {
this.db=db;
db.execSQL("create table if not exists jiekou(id Integer primary key,json text,url varchar(200))");
}
public boolean getBoolean(String path) {
Cursor cursor = db.rawQuery("select *from jiekou where url='" + path + "'", null);
boolean b = cursor.moveToNext();
return b;
}
public String getJson(String path){
Cursor cursor = db.rawQuery("select *from jiekou where url='" + path + "'", null);
String ss="";
while(cursor.moveToNext()){
ss=cursor.getString(cursor.getColumnIndex("json"));
}
return ss;
}
public void addJson(String json, String s) {
db.execSQL("insert into jiekou(json,url) values('"+json+"','"+s+"')");
}
public boolean getBoolean1() {
Cursor cursor = db.rawQuery("select *from jiekou", null);
boolean b = cursor.moveToNext();
return b;
}
public String getJson1() {
Cursor cursor = db.rawQuery("select *from jiekou", null);
String ss="";
while(cursor.moveToNext()){
ss=cursor.getString(cursor.getColumnIndex("json"));
}
return ss;
}
public void deleteJson() {
db.execSQL("delete from jiekou");
}
}
- 数据缓存 dao类操作
- 封装JPA的数据操作DAO类
- Yii2 数据操作DAO
- Hibernate封装通用数据操作基类DAO
- Hibernate封装通用数据操作基类DAO
- Yii数据访问对象DAO操作数据库
- DAO层数据操作的封装
- springMVC操作数据库 DAO访问数据对象
- 连接操作数据库DAO类
- Sqlite数据库操作Dao类
- C# 数据缓存操作Cache
- C# 数据缓存操作Cache
- jQuery缓存操作-cache数据
- DAO操作
- 小型Java Web项目之DAO操作标准、DAO接口真实实现类、DAO代理实现类、DAO工厂
- Hibernate之DAO操作基础类
- BaseDB MongoDb dao数据库操作类
- 封装JPA数据库操作的DAO类
- Nginx配之负载均衡、缓存、黑名单和灰度发布
- ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务解决
- mysql eclipse 建立增删改查
- 哈夫曼编码计算带权路径长度问题
- IS-IS——常用TLV类型
- 数据缓存 dao类操作
- 如何判断Map<String, Object>为空?
- 关于SSL证书之证书链
- mybatis如何打印sql语句
- 第九周 项目1-二叉树算法库
- DXUT 加载纹理Load the texture for the screen quad
- 51nod 1307 绳子与重物 (标记父节点更新即可)
- OkHttp的一些封装
- 深入浅出JMS(二)--ActiveMQ简单介绍以及安装