public class MainActivity extends AppCompatActivity { XListView lv; MyManager mm; MyAdapter adapter; List<ShuJuBean> cha; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //实例化MyManager mm = new MyManager(MainActivity.this); //查找控件 lv = (XListView) findViewById(R.id.lv); //创建适配器 adapter = new MyAdapter(MainActivity.this); //绑定 lv.setAdapter(adapter); //设置可以刷新加载 lv.setPullRefreshEnable(true); lv.setPullLoadEnable(true); //监听 lv.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { //刷新时false getData(false); } @Override public void onLoadMore() { //加载时true getData(true); } }); //第一次出现给true有数据 getData(true); } //方法 private void getData(final boolean isAdd) { //路径 String path = "http://gank.io/api/history/content/10/1"; //调用封装类 new HttpUtil().getDataFromServer(MainActivity.this, new RequestBean(path), new HttpUtil.DataCallBack() { @Override public void prosseData(String json) { //创建Gson Gson gson = new Gson(); //解析 Bean bean = gson.fromJson(json, Bean.class); //解析后获取的集合 List<Bean.ResultsBean> list = bean.getResults(); //添加方法 mm.insert(list); //查询方法 得到查询后的集合 cha = mm.cha(); //判断是 加载还是刷新 if (isAdd) { //加载方法 adapter.addData(cha); } else { //刷新方法 adapter.updateData(cha); } //停止 lv.stopLoadMore(); lv.stopRefresh(); } }); } }public class MyAdapter extends BaseAdapter { //上下文 Context context; //集合 List<ShuJuBean> list = new ArrayList<>(); //构造方法 public MyAdapter(Context context) { this.context = context; } //加载方法 public void addData(List<ShuJuBean> list) { this.list.addAll(list); notifyDataSetChanged(); } //刷新方法 public void updateData(List<ShuJuBean> list) { this.list.clear(); addData(list); } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } //得到视图 优化 @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { //实例化ViewHolder holder = new ViewHolder(); //加载视图 convertView = View.inflate(context, R.layout.item, null); //查找控件 holder.title = (TextView) convertView.findViewById(R.id.tv_title); holder.content = (TextView) convertView.findViewById(R.id.tv_content); //设置Tag convertView.setTag(holder); } else { //得到Tag holder = (ViewHolder) convertView.getTag(); } //赋值 holder.title.setText(list.get(position).title); holder.content.setText(list.get(position).content); //返回 return convertView; } class ViewHolder { TextView title, content; } }public class MyHelper extends SQLiteOpenHelper { //建表 public MyHelper(Context context) { super(context, "zhou3.db", null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table user(id integer primary key autoincrement,title text,content text)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }public class MyManager { SQLiteDatabase db; //构造方法 public MyManager(Context context) { //实例化MyHelper MyHelper helper = new MyHelper(context); //得到数据库操作 db = helper.getWritableDatabase(); } //添加方法 public void insert(List<Bean.ResultsBean> list) { for (int i = 0; i < list.size(); i++) { ContentValues value = new ContentValues(); value.put("title", list.get(i).getTitle()); value.put("content", list.get(i).getContent()); db.insert("user", null, value); } } //查询方法 public List<ShuJuBean> cha() { List<ShuJuBean> list = new ArrayList<ShuJuBean>(); //得到游标 Cursor cursor = db.query("user", null, null, null, null, null, null); //按行查 while (cursor.moveToNext()) { int id = cursor.getInt(cursor.getColumnIndex("id")); String title = cursor.getString(cursor.getColumnIndex("title")); String content = cursor.getString(cursor.getColumnIndex("content")); ShuJuBean sjb = new ShuJuBean(title, content); list.add(sjb); } //返货集合 return list; } }public class ShuJuBean { int id; String title,content; public ShuJuBean(String title, String content) { this.title = title; this.content = content; } public ShuJuBean() { } }
网络请求数据 保存数据库 查询数据库 显示
最新推荐文章于 2021-05-27 00:11:09 发布