dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.0.1' testCompile 'junit:junit:4.12' compile 'com.android.support:recyclerview-v7:25.3.1' compile 'com.squareup.retrofit2:retrofit:2.3.0' compile 'com.squareup.retrofit2:converter-gson:2.3.0' compile 'io.reactivex.rxjava2:rxandroid:2.0.1' compile 'io.reactivex.rxjava2:rxjava:2.1.7' compile 'com.squareup.retrofit2:adapter-rxjava2:2.3.0' compile 'com.github.bumptech.glide:glide:4.0.0'}
=========
<?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_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" tools:context="com.bwie.d.liqiwen1509d20171208.MainActivity"> <android.support.v7.widget.RecyclerView android:id="@+id/recy_lift" android:layout_weight="3" android:layout_width="0dp" android:layout_height="match_parent"/> <android.support.v7.widget.RecyclerView android:id="@+id/recy_right" android:layout_weight="7" android:layout_width="0dp" android:layout_height="match_parent"/> </LinearLayout>======<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:orientation="vertical" android:layout_height="match_parent"> <ImageView android:id="@+id/iamget" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/grid_text" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </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="vertical"> <TextView android:id="@+id/right_text" android:textColor="#00f" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <android.support.v7.widget.RecyclerView android:id="@+id/grid_recy" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </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="vertical"> <ImageView android:id="@+id/tu" android:layout_gravity="center" android:layout_width="100dp" android:layout_height="100dp" /> <TextView android:id="@+id/left_text" android:textColor="#f00" android:layout_gravity="center" android:textSize="26sp" android:text="111" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>=====package com.bwie.d.liqiwen1509d20171208; import android.app.Application; import retrofit2.Retrofit; import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; import retrofit2.converter.gson.GsonConverterFactory; /** * Created by d on 2017/12/8. */ public class MyApplication extends Application{ public static TIGetModel tiGetModel; @Override public void onCreate() { super.onCreate(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://120.27.23.105") .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build(); tiGetModel = retrofit.create(TIGetModel.class); } }=============package com.bwie.d.liqiwen1509d20171208; import io.reactivex.Observable; import retrofit2.http.GET; /** * Created by d on 2017/12/8. */ public interface TIGetModel { @GET("/product/getCatagory") Observable<BeanName> doGet(); }=====package com.bwie.d.liqiwen1509d20171208.model; import com.bwie.d.liqiwen1509d20171208.BeanName; import com.bwie.d.liqiwen1509d20171208.MyApplication; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.functions.Consumer; import io.reactivex.schedulers.Schedulers; /** * Created by d on 2017/12/8. */ public class MyModel { public void getData(final ModelCallBack callBack){ MyApplication.tiGetModel.doGet() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consumer<BeanName>() { @Override public void accept(BeanName beanName) throws Exception { callBack.success(beanName); } }); } public interface ModelCallBack{ public void success(BeanName beanName); } }====package com.bwie.d.liqiwen1509d20171208.presenter; import com.bwie.d.liqiwen1509d20171208.BeanName; import com.bwie.d.liqiwen1509d20171208.model.MyModel; /** * Created by d on 2017/12/8. */ public class MyPresenter { ViewCallBack callBack; public MyPresenter(ViewCallBack callBack){ this.callBack = callBack; } MyModel myModel = new MyModel(); public void getData(){ myModel.getData(new MyModel.ModelCallBack() { @Override public void success(BeanName beanName) { callBack.success(beanName); } }); } public interface ViewCallBack{ public void success(BeanName beanName); } }====package com.bwie.d.liqiwen1509d20171208; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.Toast; import com.bwie.d.liqiwen1509d20171208.adapter.LeftAdapter; import com.bwie.d.liqiwen1509d20171208.adapter.RightAdapter; import com.bwie.d.liqiwen1509d20171208.okhttp.AbstractUiCallBack; import com.bwie.d.liqiwen1509d20171208.okhttp.OkhttpUtils; import com.bwie.d.liqiwen1509d20171208.presenter.MyPresenter; public class MainActivity extends AppCompatActivity implements MyPresenter.ViewCallBack{ private RecyclerView liftrecy; private RecyclerView right_recy; private MyPresenter myPresenter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); liftrecy = (RecyclerView) findViewById(R.id.recy_lift); right_recy = (RecyclerView) findViewById(R.id.recy_right); myPresenter = new MyPresenter(this); myPresenter.getData(); } @Override public void success(final BeanName beanName) { LinearLayoutManager layoutManager = new LinearLayoutManager(MainActivity.this,LinearLayoutManager.VERTICAL,false); LeftAdapter leftAdapter = new LeftAdapter(MainActivity.this,beanName); liftrecy.setAdapter(leftAdapter); liftrecy.setLayoutManager(layoutManager); leftAdapter.setClickListener(new LeftAdapter.onClickListener() { @Override public void click(View view, int position) { Toast.makeText(MainActivity.this,position+"",Toast.LENGTH_SHORT).show(); int cid = beanName.getData().get(position).getCid(); OkhttpUtils.getInstance().asy(null, "http://120.27.23.105/product/getProductCatagory?cid=" + cid, new AbstractUiCallBack<BeanValue>() { @Override public void success(BeanValue beanValue) { LinearLayoutManager manager = new LinearLayoutManager(MainActivity.this,LinearLayoutManager.VERTICAL,false); RightAdapter rightAdapter = new RightAdapter(MainActivity.this,beanValue); right_recy.setLayoutManager(manager); right_recy.setAdapter(rightAdapter); } @Override public void failure(Exception e) { } }); } }); } }====================package com.bwie.d.liqiwen1509d20171208.adapter; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.bwie.d.liqiwen1509d20171208.BeanName; import com.bwie.d.liqiwen1509d20171208.R; /** * Created by d on 2017/12/8. */ public class LeftAdapter extends RecyclerView.Adapter<LeftAdapter.IviewHolder>{ Context context; BeanName beanName; public LeftAdapter(Context context, BeanName beanName) { this.beanName = beanName; this.context = context; } @Override public IviewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = View.inflate(context, R.layout.layout_text,null); return new IviewHolder(view); } @Override public void onBindViewHolder(IviewHolder holder, final int position) { holder.textView.setText(beanName.getData().get(position).getName()); Glide.with(context).load(beanName.getData().get(position).getIcon()).into(holder.tu); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(listener!=null){ listener.click(view,position); } } }); } @Override public int getItemCount() { return beanName.getData().size(); } static class IviewHolder extends RecyclerView.ViewHolder{ private final TextView textView; private final ImageView tu; public IviewHolder(View itemView) { super(itemView); tu= (ImageView) itemView.findViewById(R.id.tu); textView = (TextView) itemView.findViewById(R.id.left_text); } } onClickListener listener; public void setClickListener(onClickListener listener){ this.listener = listener; } public interface onClickListener{ public void click(View view,int position); } }==============package com.bwie.d.liqiwen1509d20171208.adapter; import android.content.Context; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.bwie.d.liqiwen1509d20171208.BeanValue; import com.bwie.d.liqiwen1509d20171208.R; /** * Created by d on 2017/12/8. */ public class RightAdapter extends RecyclerView.Adapter<RightAdapter.IViewHolder>{ Context context; BeanValue beanValue; public RightAdapter(Context context, BeanValue beanValue) { this.context = context; this.beanValue = beanValue; } @Override public IViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = View.inflate(context, R.layout.layout_right, null); return new IViewHolder(view); } @Override public void onBindViewHolder(IViewHolder holder, int position) { holder.textView.setText(beanValue.getData().get(position).getName()); GridLayoutManager manager = new GridLayoutManager(context,3); GridAdapter gridAdapter = new GridAdapter(context,beanValue); holder.recyclerView.setLayoutManager(manager); holder.recyclerView.setAdapter(gridAdapter); } @Override public int getItemCount() { return beanValue.getData().size(); } static class IViewHolder extends RecyclerView.ViewHolder{ private final TextView textView; private final RecyclerView recyclerView; public IViewHolder(View itemView) { super(itemView); textView = (TextView) itemView.findViewById(R.id.right_text); recyclerView = (RecyclerView) itemView.findViewById(R.id.grid_recy); } } }========package com.bwie.d.liqiwen1509d20171208.adapter; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.bwie.d.liqiwen1509d20171208.BeanValue; import com.bwie.d.liqiwen1509d20171208.R; /** * Created by d on 2017/12/8. */ public class GridAdapter extends RecyclerView.Adapter<GridAdapter.IViewHolder>{ Context context; BeanValue beanValue; public GridAdapter(Context context, BeanValue beanValue) { this.context = context; this.beanValue = beanValue; } @Override public IViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = View.inflate(context, R.layout.layout_grid, null); return new IViewHolder(view); } @Override public void onBindViewHolder(IViewHolder holder, int position) { holder.textView.setText(beanValue.getData().get(position).getList().get(position).getName()); Glide.with(context).load(beanValue.getData().get(position).getList().get(position).getIcon()).into(holder.iamget); } @Override public int getItemCount() { return beanValue.getData().size(); } public static class IViewHolder extends RecyclerView.ViewHolder{ private final TextView textView; private final ImageView iamget; public IViewHolder(View itemView) { super(itemView); iamget=(ImageView)itemView.findViewById(R.id.iamget); textView = (TextView) itemView.findViewById(R.id.grid_text); } } }
淘宝分类
最新推荐文章于 2025-02-08 15:57:37 发布