第一,先导入依赖包
compile 'com.squareup.okio:okio:1.5.0'
compile 'com.squareup.okhttp3:okhttp:3.2.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'
compile 'com.google.code.gson:gson:2.8.2'
第二,导入utils包
五个类(GsonArrayCallback.java,GsonObjectCallback.java,NetWorkUtils.java,OkHttp3Utils.java,MyApp.java)
注意:如果使用ImageLoader加载图片时,下面两行代码写到MyApp中
ImageLoaderConfiguration de=ImageLoaderConfiguration.createDefault(getApplicationContext()); ImageLoader.getInstance().init(de);
第三,添加权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
activity_main XML中:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_shop" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.bwie.dierzhoumoni.ShopActivity"> <LinearLayout android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> <EditText android:hint="输入搜索关键词" android:gravity="center" android:layout_width="280dp" android:layout_height="50dp" /> <Button android:id="@+id/qiehuan" android:text="切换" android:layout_marginLeft="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> <com.youth.banner.Banner android:id="@+id/mybanner" android:layout_width="match_parent" android:layout_height="150dp"></com.youth.banner.Banner> <android.support.v7.widget.RecyclerView android:id="@+id/id_recyclerview" android:divider="#ffff0000" android:dividerHeight="10dp" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
item_home中:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ImageView android:id="@+id/image" android:src="@mipmap/ic_launcher" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/id_num" android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center" android:text="1111111" /> </LinearLayout>
MainActivity:
public class ShopActivity extends AppCompatActivity { String mpath="http://result.eolinker.com/umIPmfS6c83237d9c70c7c9510c9b0f97171a308d13b611?uri=homepage"; String path="http://api.tianapi.com/social/?key=71e58b5b2f930eaf1f937407acde08fe&num=20"; private Banner mbanner; List mlist=new ArrayList(); List<HomeBean.DataBean.Ad1Bean> ad1; private RecyclerView mRecyclerView; private List<NewBean.NewslistBean> mDatas; private HomeAdapter mAdapter; private Button qiehuan; private boolean b=true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_shop); mbanner= (Banner) findViewById(R.id.mybanner); getData(mpath); getdata(); mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview); //mRecyclerView.setLayoutManager(new GridLayoutManager(MainActivity.this,4)); //添加分割线 mRecyclerView.addItemDecoration(new DividerItemDecoration( ShopActivity.this, DividerItemDecoration.VERTICAL)); mRecyclerView.addItemDecoration(new DividerItemDecoration( ShopActivity.this, DividerItemDecoration.HORIZONTAL)); qiehuan= (Button) findViewById(R.id.qiehuan); //点击切换 qiehuan.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(b==false) { mAdapter = new HomeAdapter(); mRecyclerView.setLayoutManager(new GridLayoutManager(ShopActivity.this,4)); mRecyclerView.setAdapter(mAdapter); b=true; }else{ mAdapter = new HomeAdapter(); mRecyclerView.setLayoutManager(new LinearLayoutManager(ShopActivity.this)); mRecyclerView.setAdapter(mAdapter); b=false; } } }); } //无限轮播 private void getData(String mpath) { OkHttp3Utils.getInstance().doGet(mpath, new GsonObjectCallback<HomeBean>() { @Override public void onUi(HomeBean homeBean) { for(int i=0; i<homeBean.getData().getAd1().size();i++){ String ad1s = homeBean.getData().getAd1().get(i).getImage(); mlist.add(ad1s); } //设置图片加载器 mbanner.setImageLoader((ImageLoaderInterface) new GlideImageLoader()); mbanner.setImages(mlist); mbanner.start(); } @Override public void onFailed(Call call, IOException e) { } }); } //请求数据 private void getdata() { OkHttp3Utils.getInstance().doGet(path, new GsonObjectCallback<NewBean>() { @Override public void onUi(NewBean newBean) { mDatas=newBean.getNewslist(); mAdapter = new HomeAdapter(); mRecyclerView.setAdapter(mAdapter); mRecyclerView.setLayoutManager(new LinearLayoutManager(ShopActivity.this)); } @Override public void onFailed(Call call, IOException e) { } }); } class HomeAdapter extends RecyclerView.Adapter<MyViewHolder>{ @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { MyViewHolder holder = new MyViewHolder(LayoutInflater.from( ShopActivity.this).inflate(R.layout.item_home, parent, false)); return holder; } @Override public void onBindViewHolder(MyViewHolder holder, int position) { holder.tv.setText(mDatas.get(position).getTitle()); //ImageLoader imageLoader=ImageLoader.getInstance(); ImageLoader.getInstance().displayImage(mDatas.get(position).getPicUrl(),holder.imageView); } @Override public int getItemCount() { return mDatas.size(); } } class MyViewHolder extends RecyclerView.ViewHolder { TextView tv; ImageView imageView; public MyViewHolder(View view) { super(view); tv = (TextView) view.findViewById(R.id.id_num); imageView=(ImageView) view.findViewById(R.id.image); } } }