小圆点+无限轮播+络请求数据_跳转
来源:互联网 发布:简谱打谱软件 编辑:程序博客网 时间: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>
- 小圆点+无限轮播+络请求数据_跳转
- 小圆点+无限轮播
- 无限轮播+小圆点
- 无限轮播+小圆点
- 无限轮播小圆点
- 小圆点无限轮播
- 无限轮播+小圆点
- ViewPager+小圆点进行无限轮播
- Viewpager自动无限轮播+小圆点
- ViewPager小圆点无限轮播
- ViewPager加小圆点无限轮播
- viewpager无限轮播、加小圆点
- ViewPager小圆点无限轮播
- ViewPager+小圆点的无限轮播
- Viewpager实现小圆点无限轮播
- ViewPager实现无限轮播+小圆点
- ViewPage无限轮播+小圆点
- 无限轮播的小圆点设置
- BRE与ERE的差异
- post请求
- Hibernate和Mybatis进行比较
- sgu233The Greatest Angle(计算几何)
- 什么是LAMP
- 小圆点+无限轮播+络请求数据_跳转
- this的一些了解
- 手机软键盘弹出时影响布局的解决方法_javascript技巧
- leetCode_647_PalindromicSubstrings
- kibana5.5.2部署-02
- Linux查找某个时间内的文件
- Class版本号和Java版本对应关系
- hdu 6180 Schedule (贪心)
- SpringMVC入门——基础知识