小圆点+无限轮播+络请求数据_跳转

来源:互联网 发布:简谱打谱软件 编辑:程序博客网 时间:2024/05/20 22:01

主Activity

public class MainActivity extends AppCompatActivity {
    ViewPager       vp;
    RadioGroup      rg;
    List<ImageView> list;
    TextView        huangwang;
    TextView        love;
    int index = 10000;
    MyViewPager                             myViewPager;
    Reader                                  getdata;
    GridView                                gv;
    List<Shop.ResultBean.IndexProductsBean> list_gv;
    AdvsDao                                 advsDao;
    Shop                                    shop;
    Handler handler = new Handler();
    List<ImageView> list_rg;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        vp = (ViewPager) findViewById(R.id.vp);
        //rg = (RadioGroup) findViewById(R.id.rg);
        huangwang = (TextView) findViewById(R.id.huawang);
        love = (TextView) findViewById(R.id.love);
        gv = (GridView) findViewById(R.id.gv);
        list_rg = new ArrayList<ImageView>();
        advsDao = new AdvsDao(this);
        list = new ArrayList<ImageView>();
        list_gv = new ArrayList<Shop.ResultBean.IndexProductsBean>();
        //加载网络信息
       init();
       // initForSD();
        //  initForSD();


        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                int index = vp.getCurrentItem();
                index++;
                vp.setCurrentItem(index);
                handler.postDelayed(this, 2000);
            }
        }, 2000);
        huangwang.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent integer = new Intent(MainActivity.this, Huangwang.class);
                integer.putExtra("flag", true);
                startActivity(integer);
            }
        });
        love.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent integer = new Intent(MainActivity.this, Huangwang.class);
                startActivity(integer);
            }
        });
    }


    //请求VIewPager的图片信息
    private void init() {
        new AsyncTask<String, String, Shop>() {
            @Override
            protected Shop doInBackground(String... strings) {
                getdata = new LoadData().getdata("http://www.babybuy100.com/API/getShopOverview.ashx");
                Gson gson = new Gson();
                shop = gson.fromJson(getdata, Shop.class);
                return shop;
            }


            @Override
            protected void onPostExecute(Shop shop) {
                super.onPostExecute(shop);
                for (int i = 0; i < shop.getResult().getAdvs().size(); i++) {
                    ImageView imageView = new ImageView(MainActivity.this);
                    ImageLoader.getInstance().displayImage(shop.getResult().getAdvs().get(i).getPic(), imageView);
                    imageView.setScaleType(ImageView.ScaleType.FIT_XY);
                    list.add(imageView);
                    ContentValues values = new ContentValues();
                    values.put("url", shop.getResult().getAdvs().get(i).getPic());
                    advsDao.add(values);


                }
                huangwang.setText(shop.getResult().getBrands().get(0).getTitle());
                love.setText(shop.getResult().getBrands().get(1).getTitle());
                //设置适配器
                myViewPager = new MyViewPager(list);
                vp.setAdapter(myViewPager);
                //设置小圆点的方法
                vp.setCurrentItem(index);
                initDoc();
                list_gv = shop.getResult().getIndexProducts();
                MyGrivdBaseAdapter myBaseAdapter = new MyGrivdBaseAdapter(MainActivity.this, list_gv);
                gv.setAdapter(myBaseAdapter);
            }
        }.execute();
    }


    private void initDoc() {
        LinearLayout ll_rg = (LinearLayout) findViewById(R.id.ll_rg);
        if (shop != null && shop.getResult().getAdvs().size() > 0) {
            for (int i = 0; i < shop.getResult().getAdvs().size(); i++) {
                ImageView imageView = new ImageView(MainActivity.this);
                LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
                params.rightMargin = 10;
                imageView.setLayoutParams(params);
                //设置一个默认选中
                if (i == 0) {
                    imageView.setBackgroundResource(R.drawable.doc_check);
                } else {
                    imageView.setBackgroundResource(R.drawable.doc_uncheck);
                }
                ll_rg.addView(imageView);
                list_rg.add(imageView);
            }
        }
        vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {


            }


            @Override
            public void onPageSelected(final int position) {
               /* switch (position % list.size()) {
                    case 0:
                        rg.check(R.id.rb);
                        break;
                    case 1:
                        rg.check(R.id.rb2);
                        break;
                    case 2:
                        rg.check(R.id.rb3);
                        break;
                    case 3:
                        rg.check(R.id.rb4);
                        break;
                    case 4:
                        rg.check(R.id.rb5);
                        break;
                    case 5:
                        rg.check(R.id.rb6);
                        break;
                }*/
                int index = position % list_rg.size();
                for (int i = 0; i < list_rg.size(); i++) {
                    list_rg.get(i).setBackgroundResource(R.drawable.doc_uncheck);
                }
                list_rg.get(index).setBackgroundResource(R.drawable.doc_check);
            }


            @Override
            public void onPageScrollStateChanged(int state) {
            }
        });


    }


    //sd卡加载数据
    private void initForSD() {
        new AsyncTask<String, String, List<Shop.ResultBean.AdvsBean>>() {
            @Override
            protected List<Shop.ResultBean.AdvsBean> doInBackground(String... strings) {
                List<Shop.ResultBean.AdvsBean> query = advsDao.query();
                return query;
            }


            @Override
            protected void onPostExecute(List<Shop.ResultBean.AdvsBean> query) {
                super.onPostExecute(query);
                for (int i = 0; i < query.size(); i++) {
                    ImageView imageView = new ImageView(MainActivity.this);
                    ImageLoader.getInstance().displayImage(query.get(i).getPic(), imageView);
                    imageView.setScaleType(ImageView.ScaleType.FIT_XY);
                    list.add(imageView);
                   /* ContentValues values = new ContentValues();
                    values.put("url", shop.get(i).getPic());
                    advsDao.add(values);*/


                }


                //设置适配器
                myViewPager = new MyViewPager(list);
                vp.setAdapter(myViewPager);
               vp.setCurrentItem(index);
             /* list_gv = shop.getResult().getIndexProducts();
                MyGrivdBaseAdapter myBaseAdapter = new MyGrivdBaseAdapter(MainActivity.this, list_gv);
                gv.setAdapter(myBaseAdapter);*/
            }
        }.execute();
    }
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////**********************************/

主Activity布局

<?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"
tools:context="com.bwie.mcowu.yuekaob.MainActivity">


<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="200dp"/>
<LinearLayout
android:id="@+id/ll_rg"
android:gravity="center"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_marginTop="170dp"
android:layout_height="20dp">


</LinearLayout>
<!--<RadioGroup
android:id="@+id/rg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="160dp"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rb"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_margin="5dp"
android:background="@drawable/rg_bg_selector"
android:button="@null"/>
<RadioButton
android:id="@+id/rb2"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_margin="5dp"
android:background="@drawable/rg_bg_selector"
android:button="@null"/>
<RadioButton
android:id="@+id/rb3"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_margin="5dp"
android:background="@drawable/rg_bg_selector"
android:button="@null"/>
<RadioButton
android:id="@+id/rb4"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_margin="5dp"
android:background="@drawable/rg_bg_selector"
android:button="@null"/>
<RadioButton
android:id="@+id/rb5"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_margin="5dp"
android:background="@drawable/rg_bg_selector"
android:button="@null"/>
<RadioButton
android:id="@+id/rb6"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_margin="5dp"
android:background="@drawable/rg_bg_selector"
android:button="@null"/>
</RadioGroup>-->
<LinearLayout
android:id="@+id/ll"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_below="@+id/vp"
android:orientation="vertical">
<TextView android:layout_width="match_parent"
         android:layout_height="0dp"
         android:layout_weight="1"
         android:gravity="center"
         android:text="品牌"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal">
<TextView
android:id="@+id/huawang"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="花王"/>
<TextView
android:id="@+id/love"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="love"/>
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/tv_show"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/ll"
android:gravity="center_horizontal"
android:text="商品秀"
android:textSize="30sp"/>
<GridView
android:id="@+id/gv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/tv_show"
android:numColumns="2"
>
</GridView>
</RelativeLayout>


///////////////////////******************************////////

ViewPage的适配器,无限轮播

public class MyViewPager extends PagerAdapter{
private List<ImageView> list=new ArrayList<ImageView>();


    public MyViewPager(List<ImageView> list) {
        this.list = list;
    }


    @Override
    public int getCount() {
        if(list!=null){
            return Integer.MAX_VALUE;
            //return list.size();
        }
        return 0;
    }


    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view==object;
    }


    @Override
    public Object instantiateItem(ViewGroup container, int position) {
       int index=position%list.size();
        // int index=position;
        container.addView(list.get(index));
        return list.get(index);
    }


    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View) object);
    }
}

创建数据库和数据的缓冲

public class MyDBopenHelper extends SQLiteOpenHelper {
    public MyDBopenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }


    public MyDBopenHelper(Context context) {
        super(context, "20170824.db", null, 1);
    }


    @Override
    public void onCreate(SQLiteDatabase db) {


        String sql_advs = "create table advs(id integer primary key autoincrement,url varchar,type integer)";
        String sql_brands = "create table brands(id integer primary key autoincrement, title varchar,tid integer)";
        String sql_brands_products_1 = "create table brands_products_1(id integer primary key autoincrement,name varchar,pic varchar," +
                " pid integer,price varchar,url varchar,type integer)";
        String sql_brands_products_2 = "create table brands_products_2(id integer primary key autoincrement,name varchar,pic varchar," +
                " pid integer,price varchar,url varchar,type integer)";
        String sql_indexProducts = "create table indexxx(id integer primary key autoincrement,gid integer,pic varchar,price varchar,name varchar,type integer)";
        db.execSQL(sql_advs);
        db.execSQL(sql_brands);
        db.execSQL(sql_brands_products_1);
        db.execSQL(sql_brands_products_2);
        db.execSQL(sql_indexProducts);
    }
    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {


    }
}

////////////////***********************

Avds的dao包操作数据

public class AdvsDao {
    public static final String table="advs";
    MyDBopenHelper helper;


    public AdvsDao(Context context) {
        helper = new MyDBopenHelper(context);
    }


    public void add(ContentValues values) {
        SQLiteDatabase db = helper.getWritableDatabase();
        db.insert(table,null,values);
        //db.close();
    }
    public List<Shop.ResultBean.AdvsBean> query(){
        List<Shop.ResultBean.AdvsBean> list=new ArrayList<Shop.ResultBean.AdvsBean>();
        SQLiteDatabase db = helper.getReadableDatabase();
        Cursor query = db.query(table, null, null, null, null, null, null);
        while(query.moveToNext()){
            String url = query.getString(query.getColumnIndex("url"));
            Shop.ResultBean.AdvsBean advsBean = new Shop.ResultBean.AdvsBean();
            advsBean.setUrl(url);
            list.add(advsBean);
        }
        db.close();
        return list;
    }
}

/*********************

BrandsDao//brands的数据存储方法 //花王数据存储//love数据的存储方法

public class BrandsDao {
    MyDBopenHelper helper;


    public BrandsDao(Context context) {
        helper = new MyDBopenHelper(context);
    }
    //brands的数据存储方法


    //花王数据存储




    //love数据的存储方法
}

/************************

IndexDao的

/*********************/

public class IndexDao {
    MyDBopenHelper helper;
    public IndexDao(Context context){
        helper=new MyDBopenHelper(context);
    }
}


/****************************

GrivdView的适配器


public class MyGrivdBaseAdapter extends BaseAdapter {
    private List<Shop.ResultBean.IndexProductsBean> list = new ArrayList<Shop.ResultBean.IndexProductsBean>();
    Context context;


    public MyGrivdBaseAdapter(Context context, List<Shop.ResultBean.IndexProductsBean> list) {
        this.context = context;
        this.list = list;
    }


    @Override
    public int getCount() {
        if (list != null) {
            return list.size();
        }
        return 0;
    }


    @Override
    public Object getItem(int i) {
        return i;
    }


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


    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        ViewHolder holder;
        if(view==null){
            view=View.inflate(context, R.layout.lv_items,null);
            holder=new ViewHolder();
            holder.iv=view.findViewById(R.id.iv_item);
            holder.tv_price=view.findViewById(R.id.price);
            holder.tv_title=view.findViewById(R.id.title);
            view.setTag(holder);
        }else{
            holder= (ViewHolder) view.getTag();
        }
        ImageLoader.getInstance().displayImage(list.get(i).getPic(),holder.iv);
        holder.tv_price.setText(list.get(i).getPrice()+"");
        holder.tv_title.setText(list.get(i).getName());
        return view;
    }


    class ViewHolder {
        private ImageView iv;
        private TextView  tv_title;
        private TextView  tv_price;
    }
}


/********************************/

ListView的适配器器

public class MyListViewBaseAdapter extends BaseAdapter {
    private List<Shop.ResultBean.BrandsBean.ProductsBean> list = new ArrayList<Shop.ResultBean.BrandsBean.ProductsBean>();
    Context context;


    public MyListViewBaseAdapter(Context context, List<Shop.ResultBean.BrandsBean.ProductsBean> list) {
        this.context = context;
        this.list = list;
    }


    @Override
    public int getCount() {
        if (list != null) {
            return list.size();
        }
        return 0;
    }


    @Override
    public Object getItem(int i) {
        return i;
    }


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


    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        ViewHolder holder;
        if(view==null){
            view=View.inflate(context, R.layout.lv_items,null);
            holder=new ViewHolder();
            holder.iv=view.findViewById(R.id.iv_item);
            holder.tv_price=view.findViewById(R.id.price);
            holder.tv_title=view.findViewById(R.id.title);
            view.setTag(holder);
        }else{
            holder= (ViewHolder) view.getTag();
        }
        ImageLoader.getInstance().displayImage(list.get(i).getPic(),holder.iv);
        holder.tv_price.setText(list.get(i).getPrice());
        holder.tv_title.setText(list.get(i).getName());
        return view;
    }


    class ViewHolder {
        private ImageView iv;
        private TextView  tv_title;
        private TextView  tv_price;
    }
}

/*///////////////////////*

跳转页面的主方法

public class Huangwang extends AppCompatActivity {
    ListView                                      lv;
    List<Shop.ResultBean.BrandsBean.ProductsBean> list;
    List<Shop.ResultBean.BrandsBean.ProductsBean> list2;
    boolean                                       falgs;


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.huang);
        lv = (ListView) findViewById(R.id.lv);
        list = new ArrayList<Shop.ResultBean.BrandsBean.ProductsBean>();
        list2 = new ArrayList<Shop.ResultBean.BrandsBean.ProductsBean>();
        Intent intent = getIntent();
        falgs = intent.getBooleanExtra("flag", false);
        //请求数据源
        initdata();


    }


    private void initdata() {
        new AsyncTask<String, String, Shop>() {


            @Override
            protected Shop doInBackground(String... strings) {
                Reader getdata = new LoadData().getdata("http://www.babybuy100.com/API/getShopOverview.ashx");
                Gson gson = new Gson();
                Shop shop = gson.fromJson(getdata, Shop.class);
                return shop;
            }


            @Override
            protected void onPostExecute(Shop s) {


                for (int i = 0; i < s.getResult().getBrands().get(0).getProducts().size(); i++) {
                    if (falgs) {
                        Shop.ResultBean.BrandsBean.ProductsBean productsBean = s.getResult().getBrands().get(0).getProducts().get(i);
                        list.add(productsBean);
                        MyListViewBaseAdapter myListViewBaseAdapter = new MyListViewBaseAdapter(Huangwang.this, list);
                        lv.setAdapter(myListViewBaseAdapter);
                    } else {
                        Shop.ResultBean.BrandsBean.ProductsBean productsBean1 = s.getResult().getBrands().get(1).getProducts().get(i);
                        list2.add(productsBean1);
                        MyListViewBaseAdapter myListViewBaseAdapter = new MyListViewBaseAdapter(Huangwang.this, list2);
                        lv.setAdapter(myListViewBaseAdapter);
                    }
                }
                super.onPostExecute(s);
            }
        }.execute();
    }
}

/*///////////**************************************/

ImageLoad的方法

public class MyApp extends Application {


    public void onCreate() {
        super.onCreate();
        File cacheDir = this.getCacheDir();
        DisplayImageOptions options = new DisplayImageOptions.Builder()
                .cacheInMemory(true)
                .cacheOnDisk(true)
                .build();
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this)
                //.memoryCacheExtraOptions(480, 800)
                // 线程池内加载的数量
                .threadPoolSize(5)
                // 线程优先级
                //.threadPriority(Thread.NORM_PRIORITY - 2)
                .defaultDisplayImageOptions(options)
                .diskCacheSize(50 * 1024 * 1024)
               /* //将保存的时候的URI名称用MD5
                .diskCacheFileNameGenerator(new Md5FileNameGenerator())
                // 加密*/
                //.tasksProcessingOrder(QueueProcessingType.LIFO)
                .diskCacheFileCount(100) //缓存的File数量
                .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // You can pass your own memory cache implementation/你可以通过自己的内存缓存实现
                .memoryCacheSize(2 * 1024 * 1024)
                .diskCache(new UnlimitedDiscCache(cacheDir))// 自定义缓存路径
                .build();
        ImageLoader.getInstance().init(config);
    }
}

数据请求

public class LoadData {
    public Reader getdata(String path) {
        Reader isr = null;
        try {
            URL url = new URL(path);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            conn.setReadTimeout(5000);
            conn.setConnectTimeout(5000);
            int code = conn.getResponseCode();
            if (code == 200) {
                InputStream inputStream = conn.getInputStream();
                isr = new InputStreamReader(inputStream);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return isr;
    }
}


/******************************/

获取当前网络类型

public class Type extends AppCompatActivity{
    public boolean isNetworkConnected() {
        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo ni = cm.getActiveNetworkInfo();
        return ni != null && ni.isConnectedOrConnecting();
    }


    /**
     * 获取当前网络类型
     * @return 0:没有网络   1:WIFI网络   2:WAP网络    3:NET网络
     */


    public static final int NETTYPE_WIFI = 0x01;
    public static final int NETTYPE_CMWAP = 0x02;
    public static final int NETTYPE_CMNET = 0x03;
    public int getNetworkType() {
        int netType = 0;
        ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
        if (networkInfo == null) {
            return netType;
        }
        int nType = networkInfo.getType();
        if (nType == ConnectivityManager.TYPE_WIFI) {
            netType = NETTYPE_WIFI;
        }
        return netType;
    }


}

////////////////////////// 

huangwang的布局文件

<?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">
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</LinearLayout>

/////////////////////////////////////////////////////***************************


最后页的布局

<?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:id="@+id/iv_item"
android:layout_width="150dp"
android:layout_height="150dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="150dp"
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="80dp"
android:text="title"
android:gravity="center_horizontal"
android:textSize="20sp"/>
<TextView
android:id="@+id/price"
android:layout_width="match_parent"
android:layout_height="80dp"
android:text="price"
android:gravity="center"
android:textSize="20sp"/>
</LinearLayout>
</LinearLayout>


原创粉丝点击