//展示pullTO ListView的主页面
package com.example.yyangweihan1119.Fragment.Second;
import android.annotation.SuppressLint;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.TextView;
import com.example.yyangweihan1119.Adapter.NewsAdapter;
import com.example.yyangweihan1119.Bean.Bean;
import com.example.yyangweihan1119.NetUtils.NetUtils;
import com.example.yyangweihan1119.R;
import com.example.yyangweihan1119.SqLite.NewsDao;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import java.util.ArrayList;
import java.util.List;
public class TUIJianFragment extends Fragment {
private PullToRefreshListView pullListView;
private NewsAdapter adapter;
private int pager;
private NewsDao dao;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.tuijian,container,false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
pullListView = view.findViewById(R.id.pullListView);
adapter = new NewsAdapter(getActivity());
pullListView.setAdapter(adapter);
pager = 1;
dao = new NewsDao(getActivity());
pullListView.setMode(PullToRefreshBase.Mode.BOTH);
pullListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
pager =1;
initData();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
initData();
}
});
initData();
infoData();
}
private String urlStr = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
private void initData(){
NetUtils.getInstance().getqusert(String.format(urlStr), Bean.class, new NetUtils.CallBak<Bean>() {
@Override
public void onSuccess(Bean bean) {
if (pager == 1){
adapter.setMlist(bean.getData());
dao.del();
}else {
adapter.addMlist(bean.getData());
}
pager++;
pullListView.onRefreshComplete();
}
});
}
@SuppressLint("StaticFieldLeak")
private void infoData(){
new AsyncTask<String,Void,List<Bean.DataBean>>(){
@Override
protected List<Bean.DataBean> doInBackground(String... strings) {
List<Bean.DataBean> data = new ArrayList<>();
//循环数组
for (String url : strings) {
Bean bean = NetUtils.getInstance().getqusert(url, Bean.class);
data.addAll(bean.getData());
}
if (dao.select().size() == 0){
for (Bean.DataBean dadabean : data){
String news_title = dadabean.getNews_title();
String news_summary = dadabean.getNews_summary();
dao.add(news_title,news_summary);
}
}
List<Bean.DataBean> select = dao.select();
return select;
}
@Override
protected void onPostExecute(List<Bean.DataBean> dataBeans) {
adapter.setMlist(dataBeans);
}
}.execute(urlStr);
}
}
//DAO 层
package com.example.yyangweihan1119.SqLite;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.example.yyangweihan1119.Bean.Bean;
import java.util.ArrayList;
import java.util.List;
public class NewsDao {
private SqLiteHelper helper;
private SQLiteDatabase sb;
public NewsDao(Context context){
helper = new SqLiteHelper(context);
sb = helper.getReadableDatabase();
}
public void add(String news_title,String news_summary){
ContentValues values = new ContentValues();
values.put("news_title",news_title);
values.put("news_summary",news_summary);
sb.insert("news",null,values);
}
public List<Bean.DataBean> select(){
Cursor news = sb.query("news", null, null, null, null, null, null);
List<Bean.DataBean> list = new ArrayList<>();
while (news.moveToNext()){
String news_title = news.getString(news.getColumnIndex("news_title"));
String news_summary = news.getString(news.getColumnIndex("news_summary"));
Bean.DataBean bean = new Bean.DataBean();
bean.setNews_title(news_title);
bean.setNews_summary(news_summary);
list.add(bean);
}
return list;
}
public void del(){
sb.delete("news",null,null);
}
}
//创建数据库
public class SqLiteHelper extends SQLiteOpenHelper {
public SqLiteHelper(Context context) {
super(context, "News.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table news(id integer primary key autoincrement," +
"news_title text," +
"news_summary text)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
//展示 数据库里的数据
package com.example.yyangweihan1119.Fragment.Second;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.yyangweihan1119.Bean.Bean;
import com.example.yyangweihan1119.NetUtils.NetUtils;
import com.example.yyangweihan1119.R;
import com.example.yyangweihan1119.SqLite.NewsDao;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.youth.banner.Banner;
import com.youth.banner.BannerConfig;
import com.youth.banner.loader.ImageLoaderInterface;
import java.util.ArrayList;
import java.util.List;
public class ShowFragment extends Fragment {
private TextView textView;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.show,container,false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
textView = view.findViewById(R.id.show);
NewsDao newsDao = new NewsDao(getActivity());
List<Bean.DataBean> select = newsDao.select();
StringBuilder sb = new StringBuilder();
for (int i = 0 ; i<select.size(); i++){
sb.append(select.get(i).getNews_title()+" ");
}
textView.setText(sb);
}
}