倒计时+viewpager+频道管理

需要导入的依赖:

 implementation 'com.android.support:design:28+'
    implementation 'com.github.userswlwork:pull-to-refresh:1.0.0'
    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
    implementation 'com.google.code.gson:gson:2.8.5'
    implementation project(':xlistviewlibrary')
    implementation 'com.recker.flybanner:flybanner:1.3'
     androidTestImplementation 'com.android.support.test:runner:1.0.2'

注意在工作空间的依赖

在这个文件下

allprojects {
repositories {
google()
jcenter()
maven {url “https://jitpack.io”}
}
}

main.xml布局文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@mipmap/a"

    tools:context=".MainActivity">

    <TextView
        android:id="@+id/mTime"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="48dp"
        android:text="5秒"
        android:textColor="#fff"
        android:textSize="30sp" />

</RelativeLayout

MainActivity.java

import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

private TextView textView;
private int time =5;
private Handler handler =new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
          time--;
          textView.setText(time+"秒");
          if (time==0){

               startActivity(new Intent(MainActivity.this,TwoActivity.class));
               finish();
               handler.removeMessages(0);
          }
        handler.sendEmptyMessageDelayed(0,1000);
    }
};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

          textView = findViewById(R.id.mTime);

           handler.sendEmptyMessageDelayed(0,1000);
    }
}

activity_two.xml布局文件

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:id="@+id/drawer"
    android:orientation="vertical"
    android:layout_height="match_parent"
    tools:context=".TwoActivity">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <android.support.v4.view.ViewPager
            android:id="@+id/viewPage"
            android:layout_weight="7"
            android:layout_width="match_parent"
            android:layout_height="0dp">

        </android.support.v4.view.ViewPager>
        <RadioGroup
            android:id="@+id/group"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:orientation="horizontal"
            android:layout_weight="1">

            <RadioButton
                android:id="@+id/btu1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:button="@null"
                android:text="首页"
                android:background="@drawable/selector"
                android:gravity="center"
                android:padding="10dp"
                android:layout_weight="1"/>
            <RadioButton
                android:id="@+id/btu2"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:button="@null"
                android:text="其他"
                android:background="@drawable/selector"
                android:gravity="center"
                android:padding="10dp"
                android:layout_weight="1"/>
            <RadioButton
                android:id="@+id/btu3"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:button="@null"
                android:text="我的"
                android:background="@drawable/selector"
                android:gravity="center"
                android:padding="10dp"
                android:layout_weight="1"/>
        </RadioGroup>
    </LinearLayout>
    <LinearLayout
        android:orientation="vertical"
        android:layout_gravity="start"
        android:background="@mipmap/m"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageView
            android:id="@+id/imageview"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:background="@mipmap/ic_launcher"/>

        <ListView
            android:id="@+id/list_text"
            android:layout_width="150dp"
            android:layout_height="match_parent"
            android:background="#00f">

        </ListView>
    </LinearLayout>


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

TwoActivity.java

package bawei.com.yuekaodemo1;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.view.Gravity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.RadioGroup;
import android.widget.Toast;

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

import bawei.com.yuekaodemo1.fragment.FragmnetOne;
import bawei.com.yuekaodemo1.fragment.FragmnetThree;
import bawei.com.yuekaodemo1.fragment.FragmnetTwo;

public class TwoActivity extends AppCompatActivity {
    private ViewPager viewPager;
    private RadioGroup group;
    private ArrayList<Fragment> list = new ArrayList<>();
    private DrawerLayout drawerLayout;
    private ListView listView;
    private ImageView imageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_two);

        drawerLayout = findViewById(R.id.drawer);
        listView = findViewById(R.id.list_text);
        imageView = findViewById(R.id.imageview);

        viewPager = findViewById(R.id.viewPage);
        group = findViewById(R.id.group);
        group.check(group.getChildAt(0).getId());
        drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {
            @Override
            public void onDrawerSlide(@NonNull View view, float v) {

            }

            @Override
            public void onDrawerOpened(@NonNull View view) {
                Toast.makeText(TwoActivity.this,"已被打开",Toast.LENGTH_LONG).show();
            }

            @Override
            public void onDrawerClosed(@NonNull View view) {
                Toast.makeText(TwoActivity.this,"已被关闭",Toast.LENGTH_LONG).show();
            }

            @Override
            public void onDrawerStateChanged(int i) {

            }
        });

        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                drawerLayout.closeDrawer(Gravity.START);
            }
        });

                    list.add(new FragmnetOne());
                    list.add(new FragmnetTwo());
                    list.add(new FragmnetThree());
        viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int i) {
                return list.get(i);
            }

            @Override
            public int getCount() {
                return list.size();
            }
        });
        group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {

                switch (checkedId){
                    case R.id.btu1:
                        viewPager.setCurrentItem(0);
                        break;
                    case R.id.btu2:
                        viewPager.setCurrentItem(1);
                        break;
                    case R.id.btu3:
                        viewPager.setCurrentItem(2);
                        break;
                }
            }
        });

        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i1) {

            }

            @Override
            public void onPageSelected(int i) {
                group.check(group.getChildAt(i).getId());
            }

            @Override
            public void onPageScrollStateChanged(int i) {

            }
        });



        final List<String> list_text = new ArrayList<>();
        list_text.add("首页");
        list_text.add("我的");
        list_text.add("视频");
        list_text.add("新闻");
        list_text.add("热点");

        listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list_text));

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                viewPager.setCurrentItem(position);

                drawerLayout.closeDrawers();
            }
        });
    }
}

NetWord.java

package bawei.com.weichunhao20190119.netword;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class NetWord {
    public  static  boolean isconnection(Context context){
        if (context!=null){
            ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
            if (networkInfo != null) {
                return  networkInfo.isConnected();
            }
        }
        return  false;

    }
}

Mapp.java图片框架

package bawei.com.yuekaodemo1.app;

import android.app.Application;
import android.os.Environment;

import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;

import java.io.File;

public class Mapp extends Application {

    File file = new File(Environment.getExternalStorageDirectory()+"/"+"image");
    @Override
    public void onCreate() {
        super.onCreate();

        ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this)
                .diskCache(new UnlimitedDiskCache(file))
                .build();

           ImageLoader imageLoader = ImageLoader.getInstance();

             imageLoader.init(configuration);
           // ImageLoader.getInstance().init(configuration);
    }
}

MySQlite创建数据库

package bawei.com.yuekaodemo1.sqlite;

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

public class MySQlite extends SQLiteOpenHelper {
    public   MySQlite(Context context) {
        super(context, "User.db", null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table user(id integer primary key autoincrement," +
                "url text," +
                "jsonData text)");

    }

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

    }
}

userDao.java

package bawei.com.yuekaodemo1.dao;

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

import bawei.com.yuekaodemo1.sqlite.MySQlite;

public class UserDao {

          private SQLiteDatabase database;

          public UserDao(Context context){

              MySQlite mySQlite = new MySQlite(context);
              database = mySQlite.getWritableDatabase();
          }
    //插入的方法
    public void add(String url, String data) {
        //先删除相同url地址的数据
        database.delete("user","url=?",new String[]{url});
        ContentValues values = new ContentValues();
        values.put("url", url);//k值一定是数据库的字段值
        values.put("jsonData", data);
        //返回行号
        database.insert("user", null, values);
    }
    //查询
    public String queryData(String url){
        String data="";
        Cursor cursor = database.query("user", null, "url=?", new String[]{url}, null, null, null);
        while (cursor.moveToNext()){
            //获得jsonData字段的内容
            data= cursor.getString(cursor.getColumnIndex("jsonData"));
        }
        return data;
    }
}

bean.java

package bawei.com.yuekaodemo1.bean;

import java.util.List;

public class Goods {


   

    private int status;
    private String info;
    private List<DataBean> data;

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }

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

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

    public static class DataBean {
        

        private String news_id;
        private String news_title;
        private String news_summary;
        private String pic_url;

        public DataBean(String data, Object o) {
        }

        public String getNews_id() {
            return news_id;
        }

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

        public String getNews_title() {
            return news_title;
        }

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

        public String getNews_summary() {
            return news_summary;
        }

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

        public String getPic_url() {
            return pic_url;
        }

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

MyAdapter适配器

package bawei.com.yuekaodemo1.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.nostra13.universalimageloader.core.ImageLoader;

import java.util.List;

import bawei.com.yuekaodemo1.R;
import bawei.com.yuekaodemo1.bean.Goods;

public class MyAdapter extends BaseAdapter {

    private ImageLoader imageLoader = ImageLoader.getInstance();
    private List<Goods.DataBean> list ;
    private Context context;

    public MyAdapter(List<Goods.DataBean> list, Context context) {
        this.list = list;
        this.context = context;
    }

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

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public int getViewTypeCount() {
        return 2;
    }

    @Override
    public int getItemViewType(int position) {
        return position%2;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        int itemViewType = getItemViewType(position);
        switch (itemViewType){
            case 0:
                ViewHolder1 viewHolder1 = new ViewHolder1();
                if (convertView == null){

                    convertView = View.inflate(context ,R.layout.mybase1,null);

                    viewHolder1.textView =convertView.findViewById(R.id.textView);
                    viewHolder1.imageView = convertView.findViewById(R.id.imageView);
                    convertView.setTag(viewHolder1);
                }else {
                    viewHolder1= (ViewHolder1) convertView.getTag();
                }

                viewHolder1.textView.setText(list.get(position).getNews_title());
                imageLoader.displayImage(list.get(position).getPic_url(),viewHolder1.imageView);
                break;



            case 1:

                ViewHolder2 viewHolder2 = new ViewHolder2();
                if(convertView == null){

                    convertView = View.inflate(context,R.layout.mybase2,null);

                    viewHolder2.tv1 = convertView.findViewById(R.id.tv1);

                    convertView.setTag(viewHolder2);
                }else{
                    viewHolder2 = (ViewHolder2) convertView.getTag();
                }
                viewHolder2.tv1.setText(list.get(position).getNews_title());

                break;
        }
        return convertView;
    }
    class ViewHolder1{

        ImageView imageView;
        TextView textView;
    }

    class ViewHolder2{
        TextView tv1;
    }
}

mybase1.xml布局文件

LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

              <ImageView
                  android:id="@+id/imageView"
                  android:layout_marginTop="20dp"
                  android:layout_width="100dp"
                  android:layout_height="100dp"
                  android:background="@mipmap/ic_launcher"/>

                  <TextView
                      android:id="@+id/textView"
                      android:textColor="@color/colorAccent"
                      android:textSize="22dip"
                      android:singleLine="true"
                      android:ellipsize="marquee"
                      android:focusable="true"
                      android:focusableInTouchMode="true"
                      android:scrollHorizontally="true"
                      android:marqueeRepeatLimit="marquee_forever"
                      android:layout_centerHorizontal="true"
                      android:layout_centerVertical="true"
                      android:layout_marginTop="20dp"

                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                       android:text="1111111111111"/>
</LinearLayout>

mybase2.xm布局文件l

LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
            TextView
                 android:id="@+id/tv1"
                android:ellipsize="marquee"
                android:focusable="true"
                android:focusableInTouchMode="true"
                android:singleLine="true"
                android:layout_width="wrap_content"
                android:textColor="#fff"
                android:textSize="26sp"
                android:layout_height="wrap_content" />
</LinearLayout>

FragmnetOne.java

package bawei.com.yuekaodemo1.fragment;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

import com.andy.library.ChannelActivity;
import com.andy.library.ChannelBean;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;

import bawei.com.yuekaodemo1.R;

import static com.andy.library.ChannelActivity.REQUEST_CODE;
import static com.andy.library.ChannelActivity.RESULT_JSON_KEY;

public class FragmnetOne extends Fragment {
    private TabLayout tabLayout;
    private Button button;
    private ViewPager viewPager;
    private View view;
    private  String  jsonStr="";
    private PagerAdapter pagerAdapter;
    ArrayList<Fragment> fragmentList = new ArrayList<Fragment>();
    private  ArrayList<ChannelBean> channelBeanlist = new ArrayList<ChannelBean>();
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragmentone, container, false);
        tabLayout = view.findViewById(R.id.tab);
        button = view.findViewById(R.id.but);
        viewPager = view.findViewById(R.id.viewpager);

        return view;
    }


    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        initview();
        initData();
    }
    private void initview() {



        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Gson gson = new Gson();
                String jsonArray = gson.toJson(channelBeanlist);
                Intent intent = new Intent(getActivity(), ChannelActivity.class);
                intent.putExtra(RESULT_JSON_KEY, jsonArray);
                startActivityForResult(intent, REQUEST_CODE);
            }
        });

    }

    private void initData() {
        pagerAdapter=new PagerAdapter(getChildFragmentManager());
        viewPager.setAdapter( pagerAdapter);
        channelBeanlist=new ArrayList<>();
        channelBeanlist.add(new ChannelBean("新闻",true));
        channelBeanlist.add(new ChannelBean("视频",true));
        channelBeanlist.add(new ChannelBean("焦点",true));
        channelBeanlist.add(new ChannelBean("音乐",false));
        channelBeanlist.add(new ChannelBean("娱乐",false));
        channelBeanlist.add(new ChannelBean("首页",false));
        pagerAdapter.setData(isSelectPD(channelBeanlist));
        //联动
        tabLayout.setupWithViewPager(viewPager);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Gson gson = new Gson();
                String jsonArray = gson.toJson(channelBeanlist);
                Intent intent = new Intent(getActivity(), ChannelActivity.class);
                intent.putExtra(RESULT_JSON_KEY, jsonArray);
                startActivityForResult(intent, REQUEST_CODE);
            }
        });
    }
    public List<ChannelBean> isSelectPD(List<ChannelBean> list){
        List<ChannelBean> isok = new ArrayList<>();
        for (int i = 0;i<list.size();i++){
            if(list.get(i).isSelect()){
                isok.add(list.get(i));
            }
        }
        return isok;
    }
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_CODE && resultCode == ChannelActivity.RESULT_CODE) {
            //获取tab要展示的内容
            jsonStr = data.getStringExtra(RESULT_JSON_KEY);
            //清空之前的栏目
            tabLayout.removeAllTabs();
            Type type = new TypeToken<ArrayList<ChannelBean>>() {
            }.getType();
            channelBeanlist = new Gson().fromJson(jsonStr, type);
            //传给适配器
            pagerAdapter.setData(isSelectPD(channelBeanlist));
            tabLayout.setupWithViewPager(viewPager);
        }
    }
        private class PagerAdapter extends FragmentPagerAdapter {
            private List<ChannelBean> list = new ArrayList<>();

            public PagerAdapter(FragmentManager fm) {
                super(fm);
            }

            public void setData(List<ChannelBean> list) {
                this.list = list;
                notifyDataSetChanged();
            }

            @Override
            public Fragment getItem(int i) {
                switch (i) {
                    case 0:
                        return new Fragmnet1();
                    case 1:
                        return new Fragmnet2();
                    case 2:
                        return new Fragmnet3();
                    default:
                        return new Fragmnet3();
                }
            }

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

            @Nullable
            @Override
            public CharSequence getPageTitle(int position) {
                return list.get(position).getName();
            }

    }

}

fragmentone.xml

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

          <LinearLayout
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:orientation="horizontal">


              <android.support.design.widget.TabLayout
                  android:id="@+id/tab"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content">

              </android.support.design.widget.TabLayout>
               <Button
                   android:id="@+id/but"
                   android:layout_width="0dp"
                   android:layout_height="wrap_content"
                   android:layout_weight="1"
                   android:text="+"/>
          </LinearLayout>
    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="0dp">

    </android.support.v4.view.ViewPager>
/LinearLayout>

fragmenttwo.xml

LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:background="@mipmap/c"
    android:layout_height="match_parent">
    <com.recker.flybanner.FlyBanner
        android:id="@+id/banner"
        android:layout_width="match_parent"
        android:layout_height="450dp">

    </com.recker.flybanner.FlyBanner>
</LinearLayout>

FragmnetTwo.java

package bawei.com.yuekaodemo1.fragment;

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 com.recker.flybanner.FlyBanner;

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

import bawei.com.yuekaodemo1.R;

public class FragmnetTwo extends Fragment {
    private FlyBanner flyBanner;
    //有地址是为了得到地址里面的图片地址(使用HiJson查看)
    private String path = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragmenttwo, container, false);
        //获取资源ID
        flyBanner = view.findViewById(R.id.banner);
        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        //网络的
        List<String> list=new ArrayList<>();
        list.add("http://f.expoon.com/sub/news/2016/01/21/887844_230x162_0.jpg");
        list.add("http://f.expoon.com/sub/news/2016/01/21/580828_230x162_0.jpg");
        list.add("http://f.expoon.com/sub/news/2016/01/21/745921_230x162_0.jpg");
        flyBanner.setImagesUrl(list);

        //本地图片
        List<Integer> lists = new ArrayList<>();
        lists.add(R.mipmap.b);
        lists.add(R.mipmap.c);
        lists.add(R.mipmap.d);
        flyBanner.setImages(lists);


    }
}

fragmentthree.xml

<?xml version="1.0" encoding="utf-8"?>
RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:background="@mipmap/d"
    android:layout_height="match_parent"

   >
/RelativeLayout>

FragmnetThree.java

package bawei.com.yuekaodemo1.fragment;

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 bawei.com.yuekaodemo1.R;

public class FragmnetThree extends Fragment {


    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragmentthree, container, false);
        return view;
    }
}

fragment1.xml

<?xml version="1.0" encoding="utf-8"?>
LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:background="@mipmap/m"
    android:layout_height="match_parent">
      <com.handmark.pulltorefresh.library.PullToRefreshListView
          android:id="@+id/pv"
          android:layout_width="match_parent"
          android:layout_height="match_parent">

      </com.handmark.pulltorefresh.library.PullToRefreshListView>
</LinearLayout

Fragmnet1.java

package bawei.com.yuekaodemo1.fragment;
import android.content.ContentValues;
import android.database.Cursor;
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.Toast;

import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import bawei.com.yuekaodemo1.R;
import bawei.com.yuekaodemo1.adapter.MyAdapter;
import bawei.com.yuekaodemo1.bean.Goods;
import bawei.com.yuekaodemo1.dao.UserDao;
import bawei.com.yuekaodemo1.netword.NetWord;

public class Fragmnet1 extends Fragment {
    private String url ="http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
    private PullToRefreshListView pullToRefreshListView;
    private  int page;
    List<Goods.DataBean> list = new ArrayList<>();
    private UserDao dao;
    private MyAdapter myAdapter;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment1, container, false);

        dao = new UserDao(getActivity());

        pullToRefreshListView = view.findViewById(R.id.pv);
        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        //初始化
        initpv();
        //请求网络
        data(page);
         
    }

    private void data(int page) {
        //调用网络判断
        boolean connection = NetWord.isconnection(getActivity());
        if(connection){//有网
            String urls=url+page;
            new MyTask().execute(urls);
        }else {
            //没有网
            Toast.makeText(getActivity(),"请检查网络再试",Toast.LENGTH_LONG).show();
            //根据url地址。从数据库中获取数据
            String jsonData = dao.queryData(url);//调取数据库查询的方法
            if (!"".equals(jsonData)){
                //解析gson
                Gson gson=new Gson();
                Goods myBean = gson.fromJson(jsonData, Goods.class);
                List<Goods.DataBean> data = myBean.getData();
                list.addAll(data);
                getAdapter();
                //关闭上下拉刷新
                pullToRefreshListView.onRefreshComplete();
            }
        }
    }
    class MyTask extends AsyncTask<String ,Void,String> {

        @Override
        protected String doInBackground(String... strings) {
            String str="";
            try {
                URL url=new URL(strings[0]);
                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                urlConnection.setReadTimeout(1000);
                urlConnection.setConnectTimeout(1000);
                urlConnection.setRequestMethod("GET");
                if(urlConnection.getResponseCode()==200){
                    InputStream inputStream = urlConnection.getInputStream();
                    str = getdata(inputStream);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return str;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            //将请求下来的json数据缓存在数据库中
            dao.add(url,s);
            Gson gson=new Gson();
            Goods myBean = gson.fromJson(s, Goods.class);
            List<Goods.DataBean> data = myBean.getData();
            list.addAll(data);
             getAdapter();
            //关闭上下拉刷新
            pullToRefreshListView.onRefreshComplete();
        }
    }
    private void initpv() {
        
        pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
        pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
                list.clear();
                data(page);
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) {
                page++;
                data(page);

            }
        });
    }
    public void getAdapter(){
        myAdapter= new MyAdapter(list,getActivity());
        pullToRefreshListView.setAdapter(myAdapter);
        myAdapter.notifyDataSetChanged();
    }
    public String getdata(InputStream stream){

        StringBuilder stringBuilder = new StringBuilder();
        BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
        String  tamp ;
        try {
            while ((tamp=reader.readLine())!=null){
                stringBuilder.append(tamp);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return stringBuilder.toString();
    }
}

fragment2.xml

<?xml version="1.0" encoding="utf-8"?>
RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:background="@mipmap/b"
    android:layout_height="match_parent">
    <com.bwie.xlistviewlibrary.view.XListView
        android:id="@+id/xlv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
    </com.bwie.xlistviewlibrary.view.XListView>

</RelativeLayout>

Fragmnet2.java

package bawei.com.yuekaodemo1.fragment;

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.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.bwie.xlistviewlibrary.utils.NetWordUtils;
import com.bwie.xlistviewlibrary.view.XListView;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;

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

import bawei.com.yuekaodemo1.R;
import bawei.com.yuekaodemo1.bean.Goods;
import bawei.com.yuekaodemo1.dao.UserDao;
import bawei.com.yuekaodemo1.netword.NetWord;

public class Fragmnet2 extends Fragment {
    String url = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
    int page;
    private XListView xListView;
    List<Goods.DataBean> list = new ArrayList<>(); //大集合
    private MAdapter mAdapter;
    private ImageLoader imageLoaderInstances;
     private  UserDao dao;
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment2, container, false);
                xListView = view.findViewById(R.id.xlv);
                     dao = new UserDao(getActivity());
                 xListView.setPullLoadEnable(true);
        imageLoaderInstances = ImageLoader.getInstance();
        mAdapter = new MAdapter();
        xListView.setAdapter(mAdapter);
        initData(page); //请求网络数据

        //设置上下拉的逻辑
        xListView.setXListViewListener(new XListView.IXListViewListener() {
            //下拉刷新
            @Override
            public void onRefresh() {
                page = 0;
                initData(page);

            }

            //上拉加载更多;
            @Override
            public void onLoadMore() {
                page++;
                initData(page);
            }
        });
        return view;
    }

    private void initData(int page) {
//        String mUrl = baseUrl + page;
//        new MAsycnTask().execute(mUrl);
        //调用网络判断
        boolean connection = NetWord.isconnection(getActivity());
        if(connection){//有网
            String urls=url+page;
            new MAsycnTask().execute(urls);
        }else {
            //没有网
            Toast.makeText(getActivity(),"请检查网络再试",Toast.LENGTH_LONG).show();
            //根据url地址。从数据库中获取数据
            String jsonData = dao.queryData(url);//调取数据库查询的方法
            if (!"".equals(jsonData)){
                //解析gson
                Gson gson=new Gson();
                Goods myBean = gson.fromJson(jsonData, Goods.class);
                List<Goods.DataBean> data = myBean.getData();
                list.addAll(data);


            }
        }

    }


    private class MAdapter extends BaseAdapter {
        @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) {
            View viewItem = View.inflate(getActivity(), R.layout.mybase1, null);
            TextView textView = (TextView) viewItem.findViewById(R.id.textView);
            ImageView imageView = (ImageView) viewItem.findViewById(R.id.imageView);
            textView.setText(list.get(i).getNews_title());
            imageLoaderInstances.displayImage(list.get(i).getPic_url(), imageView);


            return viewItem;
        }
    }


    class  MAsycnTask extends AsyncTask<String,Void,String> {

        @Override
        protected String doInBackground(String... strings) {
            return NetWordUtils.getNetjson(strings[0]);
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Gson gson = new Gson();
            Goods goods = gson.fromJson(s, Goods.class);
            List<Goods.DataBean> data = goods.getData();

            list.addAll(data);
            mAdapter.notifyDataSetChanged();
            uiComplete();//让刷新头和刷新底部隐藏;


        }
    }

    private void uiComplete() {
        xListView.setRefreshTime("刚刚");
        xListView.stopRefresh();//隐藏刷新头部
        xListView.stopLoadMore();//隐藏刷新脚部


    }

}

fragment3.xml

<?xml version="1.0" encoding="utf-8"?>
    LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:background="@mipmap/d"
        android:layout_height="match_parent">
        <com.recker.flybanner.FlyBanner
            android:id="@+id/banner"
            android:layout_width="match_parent"
            android:layout_height="250dp">
    
        </com.recker.flybanner.FlyBanner>
    
    </LinearLayout>

Fragmnet3.java

package bawei.com.yuekaodemo1.fragment;
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 com.recker.flybanner.FlyBanner;

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

import bawei.com.yuekaodemo1.R;

public class Fragmnet3 extends Fragment {
    private FlyBanner flyBanner;
    //有地址是为了得到地址里面的图片地址(使用HiJson查看)
    private String path = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment3, container, false);


        //获取资源ID
        flyBanner = view.findViewById(R.id.banner);
        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        //网络的
        List<String> list=new ArrayList<>();
        list.add("http://f.expoon.com/sub/news/2016/01/19/650175_230x162_0.jpg");
        list.add("http://f.expoon.com/sub/news/2016/01/21/580828_230x162_0.jpg");
        list.add("http://f.expoon.com/sub/news/2016/01/21/745921_230x162_0.jpg");
        flyBanner.setImagesUrl(list);

        //本地图片
//        List<Integer> lists = new ArrayList<>();
//        lists.add(R.mipmap.b);
//        lists.add(R.mipmap.c);
//        lists.add(R.mipmap.d);
//        flyBanner.setImages(lists);


    }
}

需要加入的权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
最后不要忘记:
  android:name=".app.Mapp"

猜你喜欢

转载自blog.csdn.net/weixin_44293974/article/details/86565070