W3

主布局

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:id="@+id/dl">

  <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:orientation="vertical">
      <android.support.v4.view.ViewPager
          android:layout_width="match_parent"
          android:layout_height="0dp"
          android:layout_weight="1"
          android:id="@+id/pager"></android.support.v4.view.ViewPager>
<android.support.design.widget.TabLayout
    android:layout_width="match_parent"
   android:layout_height="wrap_content"
    android:id="@+id/tab"
    ></android.support.design.widget.TabLayout>
  </LinearLayout>
    <LinearLayout
        android:layout_gravity="left"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#F0F"
        android:orientation="vertical">
        <ImageView
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:layout_gravity="center"
            android:src="@mipmap/ic_launcher"
            android:padding="30dp"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="12345"
            android:layout_gravity="center"
            android:padding="30dp"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="12345"
        android:padding="30dp"/>
</LinearLayout>


</android.support.v4.widget.DrawerLayout>

frag1

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <com.youth.banner.Banner
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="3"
        android:id="@+id/banner"></com.youth.banner.Banner>
    <GridView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="4"
        android:numColumns="3"
        android:columnWidth="90dp"
        android:stretchMode="columnWidth"
        android:verticalSpacing="10dp"
        android:horizontalSpacing="10dp"
        android:id="@+id/gridview"></GridView>
<com.handmark.pulltorefresh.library.PullToRefreshListView
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="4"
    android:id="@+id/pull"></com.handmark.pulltorefresh.library.PullToRefreshListView>
</LinearLayout>

item

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    >
<ImageView
    android:layout_width="200dp"
    android:src="@mipmap/ic_launcher"
    android:layout_height="200dp"
    android:id="@+id/img"/>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tx1"
            android:text="123456"
            android:padding="30dp"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tx2"
            android:text="123456"
            android:padding="30dp"/>
    </LinearLayout>

</LinearLayout>

item1

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
>





baseActivity

package com.bawei.day15;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;

/**
 * @Auther: 孙鹏飞
 * @Date: 2019/3/1 08:49:05
 * @Description:
 */
public abstract class BaseActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(bindLayout());
        initView();
        initData();
        initListenner();
    }

    protected abstract int bindLayout();

    protected abstract void initView();

    protected abstract void initData();

    protected abstract void initListenner();
}

BaseFragment

package com.bawei.day15;

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;

/**
 * @Auther: 孙鹏飞
 * @Date: 2019/3/1 08:48:54
 * @Description:
 */
public abstract class BaseFragment extends Fragment {
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(bindLayout(), container, false);
        return view;
    }


    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        initView();
        initData();
        initListenner();
    }
    protected abstract int bindLayout();


    protected abstract void initView();

    protected abstract void initData();

    protected abstract void initListenner();
}

MainActivity

package com.bawei.day15;

import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

import com.bawei.day15.adapter.Myadapter;
import com.bawei.day15.frag.Frag1;
import com.bawei.day15.frag.Frag2;
import com.bawei.day15.http.Http;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends BaseActivity {

    private List<Fragment>list=new ArrayList<>() ;
    private String[]s={"首页","我的"};
    private ViewPager pager;
    private TabLayout tab;
    private DrawerLayout dl;

    @Override
    protected int bindLayout() {
       return  R.layout.activity_main;
    }

    @Override
    protected void initView() {
        pager = findViewById(R.id.pager);
        tab = findViewById(R.id.tab);
        dl = findViewById(R.id.dl);
    }

    @Override
    protected void initData() {
        list.add(new Frag1());
        list.add(new Frag2());
        Myadapter myadapter = new Myadapter(getSupportFragmentManager(),s,list);
        pager.setAdapter(myadapter);
        tab.setupWithViewPager(pager);


    }

    @Override
    protected void initListenner() {

    }
}

Http

package com.bawei.day15.http;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

/**
 * @Auther: 孙鹏飞
 * @Date: 2019/3/1 10:35:12
 * @Description:
 */
public class Http {
    public static boolean isConnectionWork(Context context) {
        ConnectivityManager systemService = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo info = systemService.getActiveNetworkInfo();
        if (info != null) {
            return info.isConnected();
        }
        return false;
    }

    public static String requestGet(String s) {
        try {
            URL url = new URL(s);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            connection.setConnectTimeout(5000);
            connection.setReadTimeout(5000);
            int code = connection.getResponseCode();
            if (code == 200) {
                InputStream stream = connection.getInputStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(stream, "utf-8"));
                String str = "";
                StringBuilder builder = new StringBuilder();
                while ((str = reader.readLine()) != null) {
                    builder.append(str);
                }
                return builder.toString();
            }
            connection.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
  public interface Call {
      void getDate(String s1);
  }
  public static void MyAsyncTask(String url, final Call call){
      new AsyncTask<String, Void, String>() {
          @Override
          protected String doInBackground(String... strings) {
              return Http.requestGet(strings[0]);
          }

          @Override
          protected void onPostExecute(String s) {
              super.onPostExecute(s);
              call.getDate(s);
          }
      }.execute(url);
  }

}

Frag1

package com.bawei.day15.frag;

import android.content.Context;
import android.view.View;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;

import com.bawei.day15.BaseFragment;
import com.bawei.day15.R;
import com.bawei.day15.adapter.YouAdapter;
import com.bawei.day15.bean.JsonBean;
import com.bawei.day15.bean.MyData;
import com.bawei.day15.http.Http;
import com.bawei.day15.sql.Mydao;
import com.bumptech.glide.Glide;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.youth.banner.Banner;
import com.youth.banner.loader.ImageLoader;

import java.util.ArrayList;
import java.util.List;

/**
 * @Auther: 孙鹏飞
 * @Date: 2019/3/1 08:53:54
 * @Description:
 */
public class Frag1 extends BaseFragment {

    private Banner banner;
    private List<String> list = new ArrayList<String>();
    private PullToRefreshListView pull;
    private List<MyData>list1=new ArrayList<MyData>();
    private int page=1;
    private String url = "http://api.expoon.com/AppNews/getNewsList/type/1/p/";
    private YouAdapter youAdapter;
    private YouAdapter youAdapter1;
    private GridView gridview;
    private Mydao dao;

    @Override
    protected int bindLayout() {
        return R.layout.frag1;
    }

    @Override
    protected void initView() {
        banner = getActivity().findViewById(R.id.banner);
        pull = getActivity().findViewById(R.id.pull);
        pull.setMode(PullToRefreshListView.Mode.BOTH);
        pull.setScrollingWhileRefreshingEnabled(true);
        gridview = getActivity().findViewById(R.id.gridview);
    }


    @Override
    protected void initData() {
        dao=new Mydao(getActivity());
        lbt();
        youAdapter1 = new YouAdapter(list1,getActivity());
        gridview.setAdapter(youAdapter1);
        youAdapter = new YouAdapter(list1,getActivity());
        pull.setAdapter(youAdapter);
        if(Http.isConnectionWork(getActivity())){
        getDa(page);
    }else{
            Toast.makeText(getActivity(), "请检查网络连接", Toast.LENGTH_SHORT).show();
            //查询数据库
            String s = dao.selectData(url + page);
            json(s);
        }
    }

    @Override
    protected void initListenner() {
pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
    @Override
    public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
        list1.clear();

        int page=1;
        getDa(page);

    }

    @Override
    public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
        page++;
        getDa(page);
    }
});
    }

    private void lbt() {
        list.add("https://ws1.sinaimg.cn/large/0065oQSqly1g04lsmmadlj31221vowz7.jpg");
        list.add("https://ws1.sinaimg.cn/large/0065oQSqgy1fze94uew3jj30qo10cdka.jpg");
        list.add("https://ws1.sinaimg.cn/large/0065oQSqly1fytdr77urlj30sg10najf.jpg");
        if (Http.isConnectionWork(getActivity())) {
            banner.isAutoPlay(true).setDelayTime(2000).setImages(list).setImageLoader(new ImageLoader() {
                @Override
                public void displayImage(Context context, Object path, ImageView imageView) {
                    Glide.with(context).load(path).into(imageView);
                }
            }).start();
        } else {
            Toast.makeText(getActivity(), "无连接", Toast.LENGTH_SHORT).show();
        }

    }

private void json(String s){
    Gson gson = new Gson();
    JsonBean jsonBean = gson.fromJson(s, JsonBean.class);
    list1.addAll(jsonBean.getData());
    youAdapter.notifyDataSetChanged();
    youAdapter1.notifyDataSetChanged();
    pull.onRefreshComplete();
}

private void getDa(int p){
        final String s3=url+p;
        Http.MyAsyncTask(s3, new Http.Call() {
            @Override
            public void getDate(String s1) {
                dao.insertData(s3,s1);
                //解析
                json(s1);
            }
        });

}



}

MyAdapter

package com.bawei.day15.adapter;

import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

import com.bawei.day15.MainActivity;

import java.util.List;

/**
 * @Auther: 孙鹏飞
 * @Date: 2019/3/1 08:58:41
 * @Description:
 */
public class Myadapter  extends FragmentPagerAdapter {
    private String[]s;
    private List<Fragment>list;

    public Myadapter(FragmentManager fm, String[] s, List<Fragment> list) {
        super(fm);
        this.s = s;
        this.list = list;
    }

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

    @Override
    public int getCount() {
        return list.size();
    }

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return s[position];
    }
}

YouAdapter

package com.bawei.day15.adapter;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.bawei.day15.R;
import com.bawei.day15.bean.MyData;
import com.bumptech.glide.Glide;

import java.util.List;

import jp.wasabeef.glide.transformations.BitmapTransformation;
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;

import static com.bumptech.glide.request.RequestOptions.bitmapTransform;

/**
 * @Auther: 孙鹏飞
 * @Date: 2019/3/1 10:01:08
 * @Description:
 */
public class YouAdapter extends BaseAdapter {
    private List<MyData> list;
    private Context context;

    public YouAdapter(List<MyData> list, Context context) {
        this.list = list;
        this.context = context;
    }

    @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) {
        Haode1 hd = new Haode1();
        if (convertView == null) {
            convertView = View.inflate(context, R.layout.item, null);
            hd.img = convertView.findViewById(R.id.img);
            hd.tx1 = convertView.findViewById(R.id.tx1);
            hd.tx2 = convertView.findViewById(R.id.tx2);
            convertView.setTag(hd);
        }else{
            hd= (Haode1) convertView.getTag();
        }
        MyData myData = list.get(position);
        hd.tx1.setText(myData.getNews_summary());
        hd.tx2.setText(myData.getNews_summary());
/*
                                                      .apply(bitmapTransform(new RoundedCornersTransformation(200, 0, RoundedCornersTransformation.CornerType.ALL)))
*/
        Glide.with(context).load(myData.getPic_url()) .apply(bitmapTransform(new RoundedCornersTransformation(200, 0, RoundedCornersTransformation.CornerType.ALL))).into(hd.img);

        return convertView;
    }

    class Haode1 {
        ImageView img;
        TextView tx1;
        TextView tx2;
    }
}

YouAdapter1

package com.bawei.day15.adapter;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.bawei.day15.R;
import com.bawei.day15.bean.MyData;
import com.bumptech.glide.Glide;

import java.util.List;

import jp.wasabeef.glide.transformations.RoundedCornersTransformation;

import static com.bumptech.glide.request.RequestOptions.bitmapTransform;

/**
 * @Auther: 孙鹏飞
 * @Date: 2019/3/1 10:01:08
 * @Description:
 */
public class YouAdapter1 extends BaseAdapter {
    private List<MyData> list;
    private Context context;

    public YouAdapter1(List<MyData> list, Context context) {
        this.list = list;
        this.context = context;
    }

    @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) {
        Haode1 hd = new Haode1();
        if (convertView == null) {
            convertView = View.inflate(context, R.layout.item, null);
            hd.img = convertView.findViewById(R.id.img);

            convertView.setTag(hd);
        }else{
            hd= (Haode1) convertView.getTag();
        }
        MyData myData = list.get(position);

/*
                                                      .apply(bitmapTransform(new RoundedCornersTransformation(200, 0, RoundedCornersTransformation.CornerType.ALL)))
*/
        Glide.with(context).load(myData.getPic_url()) .apply(bitmapTransform(new RoundedCornersTransformation(200, 0, RoundedCornersTransformation.CornerType.ALL))).into(hd.img);

        return convertView;
    }

    class Haode1 {
        ImageView img;
        TextView tx1;
        TextView tx2;
    }
}

MyData

package com.bawei.day15.bean;

/**
 * @Auther: 孙鹏飞
 * @Date: 2019/3/1 09:49:35
 * @Description:
 */
public class MyData {
     /* "news_id": "13811",
              "news_summary": "6月17—20日,“2016成都深港澳台嘉年华会”(简称嘉年华会)将在成都世纪城国际会展中心举办。其主办方励展华博借力旗",
              "news_title": "深港澳台千里连线,嘉年华会今夏入川",
              "pic_url": "http://f.*/
     private String news_id;
    private String news_summary;
    private String news_title;
    private String pic_url;

    public MyData(String news_id, String news_summary, String news_title, String pic_url) {
        this.news_id = news_id;
        this.news_summary = news_summary;
        this.news_title = news_title;
        this.pic_url = pic_url;
    }

    public String getNews_id() {
        return news_id;
    }

    public void setNews_id(String news_id) {
        this.news_id = news_id;
    }

    public String getNews_summary() {
        return news_summary;
    }

    public void setNews_summary(String news_summary) {
        this.news_summary = news_summary;
    }

    public String getNews_title() {
        return news_title;
    }

    public void setNews_title(String news_title) {
        this.news_title = news_title;
    }

    public String getPic_url() {
        return pic_url;
    }

    public void setPic_url(String pic_url) {
        this.pic_url = pic_url;
    }

    @Override
    public String toString() {
        return "MyData{" +
                "news_id='" + news_id + '\'' +
                ", news_summary='" + news_summary + '\'' +
                ", news_title='" + news_title + '\'' +
                ", pic_url='" + pic_url + '\'' +
                '}';
    }
}

JsonBean

package com.bawei.day15.bean;

import java.util.List;

/**
 * @Auther: 孙鹏飞
 * @Date: 2019/3/1 09:51:19
 * @Description:
 */
public class JsonBean {
    private List<MyData>data;

    public JsonBean(List<MyData> data) {
        this.data = data;
    }

    public List<MyData> getData() {
        return data;
    }

    public void setData(List<MyData> data) {
        this.data = data;
    }

    @Override
    public String toString() {
        return "JsonBean{" +
                "data=" + data +
                '}';
    }
}

MyDao

package com.bawei.day15.sql;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.text.GetChars;

import com.bawei.day15.bean.MyData;

/**
 * @Auther: 孙鹏飞
 * @Date: 2019/3/1 16:30:32
 * @Description:
 */
public class Mydao {

    private final MySql mySql;

    private String table = "news";
    public Mydao(Context context){
        mySql = new MySql(context);

    }
    public void insertData(String url, String json) {
        /*SQLiteDatabase database = mySql.getWritableDatabase();
        //先删除数据
        database.delete(table,"url=?",new String[]{url});
        //添加数据
        ContentValues values = new ContentValues();
        values.put("url",url);
        values.put("json",json);
        database.insert(table,null,values);*/
        SQLiteDatabase database = mySql.getWritableDatabase();
        //先刪除數據庫
        database.delete(table,"url=?",new String[]{url});
        //添加數據庫
        ContentValues values = new ContentValues();
        values.put("url",url);
        values.put("json",json);
        database.insert(table,null,values);
    }
    //查询数据库
    public String selectData(String url){
     /*   String json = "";
        SQLiteDatabase database = mySql.getWritableDatabase();
        Cursor cursor = database.query(table, null, "url=?", new String[]{url}, null, null, null);
        while (cursor.moveToNext()){
            json = cursor.getString(cursor.getColumnIndex("json"));
        }*/
       /* return  json;*/
        String json="";
        SQLiteDatabase database = mySql.getWritableDatabase();
        Cursor query = database.query(table, null, "url=?", new String[]{url}, null, null, null);
        while (query.moveToNext()){
            json=query.getString(query.getColumnIndex("json"));
        }
        return json;
    }
}

MySql

package com.bawei.day15.sql;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * @Auther: 孙鹏飞
 * @Date: 2019/3/1 16:30:20
 * @Description:
 */
public class MySql extends SQLiteOpenHelper {
    public MySql(Context context) {
        super(context, "bawei.db", null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table news (url varchar(20),json varchar(20))");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值