dao
package com.example.yuekao;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import java.util.ArrayList;
import java.util.List;
public class Dao {
SQLiteDatabase database;
public Dao(Context context) {
Mhelper mhelper=new Mhelper(context);
database=mhelper.getReadableDatabase();
}
public void insert(String name,String image) {
// TODO Auto-generated method stub
database.execSQL("insert into web(name,image) values (?,?)", new Object[]{name,image});
}
//查询方法
public ArrayList<ResponseBean.DataBean> select() {
Cursor cursor = database.rawQuery("select * from web", null);
StringBuilder stringBuilder = new StringBuilder();
ArrayList<ResponseBean.DataBean> list = new ArrayList<>();
while (cursor.moveToNext()){
String title = cursor.getString(cursor.getColumnIndex("name"));
String image = cursor.getString(cursor.getColumnIndex("image"));
ResponseBean.DataBean dataBean = new ResponseBean.DataBean(title,image);
list.add(dataBean);
}
return list;
}
}
Mhelper
package com.example.yuekao;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
class Mhelper extends SQLiteOpenHelper {
public Mhelper(Context context) {
super(context,“pin.db”,null,1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table web(id integer primary key autoincrement,name text,image text)");
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}
Fragment
package com.example.yuekao;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import com.google.gson.Gson;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import me.maxwin.view.XListView;
public class Fragment1 extends Fragment {
private XListView xlv;
MyAdapter myAdapter;
String path;
int page=1;
private static Dao dao;
private ArrayList<ResponseBean.DataBean> dblist;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragment_fragment1, container, false);
xlv = view.findViewById(R.id.xlv);
myAdapter=new MyAdapter(getLayoutInflater());
dao = new Dao(getContext());
initView();
return view;
}
private boolean hasNetWork(Context context){
ConnectivityManager connectivityManager= (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info=connectivityManager.getActiveNetworkInfo();
if (info!=null){
return true;
}else {
ArrayList<ResponseBean.DataBean> select = dao.select();
myAdapter.setData(select);
}
return false;
}
private void initView() {
xlv.setAdapter(myAdapter);
xlv.setPullLoadEnable(true);
xlv.setPullRefreshEnable(true);
xlv.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {
page=1;
loadData(page);
}
@Override
public void onLoadMore() {
loadData(page);
}
});
loadData(page);
}
private void loadData(int page) {
if (!hasNetWork(getActivity())) {
return;
}
path=“http://www.xieast.com/api/news/news.php?page=”+page;
new AsyncTask<String, Void, List<ResponseBean.DataBean>>() {
@Override
protected List<ResponseBean.DataBean> doInBackground(String… strings) {
ResponseBean responseBean=null;
try {
URL url=new URL(path);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod(“GET”);
urlConnection.setConnectTimeout(5000);
urlConnection.setReadTimeout(5000);
int responseCode = urlConnection.getResponseCode();
if (responseCode==200){
String str=stream2String(urlConnection.getInputStream());
responseBean = new Gson().fromJson(str, ResponseBean.class);
}
return responseBean==null?null:responseBean.getData();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(List<ResponseBean.DataBean> dataBeans) {
super.onPostExecute(dataBeans);
if (dataBeans==null){
Toast.makeText(getContext(),"qingqiu",Toast.LENGTH_LONG).show();
return;
}
initData(dataBeans);
updaData();
}
}.execute(path);
}
private void updaData() {
page++;
xlv.stopLoadMore();
xlv.stopRefresh();
}
private void initData(List<ResponseBean.DataBean> dataBeans) {
if (page==1){
myAdapter.setData(dataBeans);
for (int i=0;i<dataBeans.size();i++){
dao.insert(dataBeans.get(i).getAuthor_name(),dataBeans.get(i).getThumbnail_pic_s());
}
}else{
myAdapter.addData(dataBeans);
for (int i=0;i<dataBeans.size();i++){
dao.insert(dataBeans.get(i).getAuthor_name(),dataBeans.get(i).getThumbnail_pic_s());
}
}
}
private String stream2String(InputStream inputStream) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(inputStream));
StringBuilder sb=new StringBuilder();
for (String tmp=br.readLine();tmp!=null;tmp=br.readLine()){
sb.append(tmp);
}
return sb.toString();
}
}
MyAdapter
package com.example.yuekao;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.ArrayList;
import java.util.List;
public class MyAdapter extends BaseAdapter {
LayoutInflater layoutInflater;
List<ResponseBean.DataBean> list;
public MyAdapter(LayoutInflater layoutInflater) {
this.layoutInflater = layoutInflater;
list=new ArrayList<>();
}
@Override
public int getItemViewType(int position) {
ResponseBean.DataBean data= (ResponseBean.DataBean) getItem(position);
String iv1=data.getThumbnail_pic_s();
String iv2=data.getThumbnail_pic_s02();
String iv3=data.getThumbnail_pic_s03();
if(iv2==null&&iv3==null){
return 1;
}
return 0;
}
@Override
public int getViewTypeCount() {
return 2;
}
@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) {
switch (getItemViewType(i)){
case 1:
Holder holder=null;
if (view==null){
holder=new Holder();
view=layoutInflater.inflate(R.layout.lv_item,null);
holder.tv=view.findViewById(R.id.tv);
holder.iv=view.findViewById(R.id.iv);
view.setTag(holder);
}else{
holder= (Holder) view.getTag();
}
holder.tv.setText(list.get(i).getAuthor_name());
ImageLoader.getInstance().displayImage(list.get(i).getThumbnail_pic_s(),holder.iv);
break;
case 0:
Holder1 holder1=null;
if (view==null){
holder1=new Holder1();
view=layoutInflater.inflate(R.layout.lv_item1,null);
holder1.tv=view.findViewById(R.id.tv);
view.setTag(holder1);
}else{
holder1= (Holder1) view.getTag();
}
holder1.tv.setText(list.get(i).getAuthor_name());
break;
}
return view;
}
public void setData(List<ResponseBean.DataBean> dataBeans) {
list=dataBeans;
notifyDataSetChanged();
}
public void addData(List<ResponseBean.DataBean> dataBeans) {
list.addAll(dataBeans);
notifyDataSetChanged();
}
public void setNewData(List<ResponseBean.DataBean> dblist) {
list=dblist;
notifyDataSetChanged();
}
class Holder{
ImageView iv;
TextView tv;
}
class Holder1{
TextView tv;
}
}