//导入依赖
implementation 'com.android.support:recyclerview-v7:28.0.0'
//首先在activity页面添加两个水平的RecyclerView
//在MainActivity页面进行访问接口以及创建适配器的基本操作
package soexample.umeng.com.fenlei01;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
import soexample.umeng.com.fenlei01.adapter.MyLeftAdapter;
import soexample.umeng.com.fenlei01.adapter.MyRightAdapter;
import soexample.umeng.com.fenlei01.bean.ShopLeftBean;
import soexample.umeng.com.fenlei01.bean.ShopRightBean;
import soexample.umeng.com.fenlei01.utils.OkHttpHelper;
public class MainActivity extends AppCompatActivity {
private RecyclerView recy_left;
private RecyclerView recy_right;
private List leftbean = new ArrayList<>();
private MyLeftAdapter myLeftAdapter;
private int cid = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );
recy_left = findViewById( R.id.recyr_left );
recy_right = findViewById( R.id.recy_right );
LinearLayoutManager linearLayoutManager = new LinearLayoutManager( this );
linearLayoutManager.setOrientation( LinearLayoutManager.VERTICAL );
recy_left.setLayoutManager( linearLayoutManager );
myLeftAdapter = new MyLeftAdapter( MainActivity.this, leftbean );
recy_left.setAdapter( myLeftAdapter );
leftbean = new ArrayList<>();
myLeftAdapter.setItemClick( new MyLeftAdapter.ItemClickListener() {
@Override
public void onItemClickListener(int position) {
int id = leftbean.get( position ).getCid();
doHttpRight( id );
}
} );
/*myLeftAdapter.setListener( new MyLeftAdapter.ItemClickListener() {
@Override
public void onItemClick(int position) {
int id = leftbean.get( position ).getCid();
doHttpRight( id );
}
} );*/
doHttpLeft();
LinearLayoutManager linearLayoutManager1 = new LinearLayoutManager( this );
linearLayoutManager1.setOrientation( LinearLayoutManager.VERTICAL );
recy_right.setLayoutManager( linearLayoutManager1 );
}
private void doHttpLeft() {
new OkHttpHelper().get( "http://www.zhaoapi.cn/product/getCatagory" ).result( new OkHttpHelper.OkHttpHelperListener() {
@Override
public void Success(String data) {
ShopLeftBean shopLeftBean = new Gson().fromJson( data, ShopLeftBean.class );
leftbean = shopLeftBean.getData();
myLeftAdapter.setList( leftbean );
}
@Override
public void Error() {
}
} );
doHttpRight( cid );
}
private void doHttpRight(int cid) {
new OkHttpHelper().get( "http://www.zhaoapi.cn/product/getProductCatagory?cid=" + cid ).result( new OkHttpHelper.OkHttpHelperListener() {
@Override
public void Success(String data) {
ShopRightBean shopRightBean = new Gson().fromJson( data, ShopRightBean.class );
List rightbean = shopRightBean.getData();
MyRightAdapter rightAdapter = new MyRightAdapter( MainActivity.this, rightbean );
recy_right.setAdapter( rightAdapter );
}
@Override
public void Error() {
}
} );
}
}
//左边列表展示的的适配器
package soexample.umeng.com.fenlei01.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import soexample.umeng.com.fenlei01.MainActivity;
import soexample.umeng.com.fenlei01.R;
import soexample.umeng.com.fenlei01.bean.ShopLeftBean;
public class MyLeftAdapter extends RecyclerView.Adapter{
private Context context;
private List leftbean = new ArrayList<>( );
public MyLeftAdapter(MainActivity mainActivity, List leftbean) {
context = mainActivity;
this.leftbean = leftbean;
}
@NonNull
@Override
public MyLeftAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = View.inflate( context, R.layout.item,null);
MyViewHolder myViewHolder = new MyViewHolder( view );
myViewHolder.shopName = view.findViewById( R.id.text_shop_Name );
return myViewHolder;
}
@Override
public void onBindViewHolder(@NonNull MyLeftAdapter.MyViewHolder myViewHolder, final int i) {
myViewHolder.shopName.setText( leftbean.get( i ).getName() );
myViewHolder.shopName.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View view) {
listener.onItemClickListener( i );
}
} );
}
@Override
public int getItemCount() {
return leftbean.size();
}
public void setList(List list) {
leftbean = list;
notifyDataSetChanged();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
public MyViewHolder(@NonNull View itemView) {
super( itemView );
}
TextView shopName;
}
//由于RecyclerView本身没有点击事件 所以通过接口回调的方式进进行获取id
private ItemClickListener listener;
public void setItemClick(ItemClickListener listener){
this.listener = listener;
}
public interface ItemClickListener{
void onItemClickListener(int position);
}
}
//右边展示的适配器
package soexample.umeng.com.fenlei.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
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 java.util.List;
import soexample.umeng.com.fenlei.R;
import soexample.umeng.com.fenlei.bean.RightBean;
public class RightAdapter extends RecyclerView.Adapter{
private List list;
private Context context;
public RightAdapter(List list, Context context) {
this.list = list;
this.context = context;
}
@NonNull
@Override
public RightAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = View.inflate( context, R.layout.right_layout,null );
MyViewHolder viewHolder = new MyViewHolder( view );
return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull RightAdapter.MyViewHolder myViewHolder, int i) {
myViewHolder.textView.setText( list.get( i ).getName() );
List listBeans = this.list.get( i ).getList();
GridLayoutManager layoutManager = new GridLayoutManager( context,3 );
myViewHolder.recyclerView.setLayoutManager( layoutManager );
myViewHolder.recyclerView.setAdapter( new ShopAdapter( listBeans,context ) );
}
@Override
public int getItemCount() {
return list.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
TextView textView;
RecyclerView recyclerView;
public MyViewHolder(@NonNull View itemView) {
super( itemView );
textView = itemView.findViewById( R.id.text_title );
recyclerView = itemView.findViewById( R.id.recy_shop );
}
}
}
//右边 涉及到了两个RecyclerView
//所以要进行嵌套
//这里是嵌套的适配器
package soexample.umeng.com.fenlei01.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
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 java.util.ArrayList;
import java.util.List;
import soexample.umeng.com.fenlei01.R;
import soexample.umeng.com.fenlei01.bean.ShopRightBean;
public class MyRightItemAdapter extends RecyclerView.Adapter {
private Context context;
private List rightbean = new ArrayList<>();
public MyRightItemAdapter(Context context, List rightbean) {
this.context = context;
this.rightbean = rightbean;
}
@NonNull
@Override
public MyRightItemAdapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = View.inflate( context, R.layout.right_item_2, null );
MyViewHolder myViewHolder = new MyViewHolder( view );
myViewHolder.imageView = view.findViewById( R.id.imageView );
myViewHolder.textView = view.findViewById( R.id.textView );
return myViewHolder;
}
@Override
public void onBindViewHolder(@NonNull MyRightItemAdapter.MyViewHolder myViewHolder, int i) {
myViewHolder.textView.setText( rightbean.get( i ).getList().get( i ).getName() );
Glide.with( context ).load( rightbean.get( i ).getList().get( i ).getIcon() ).into(myViewHolder.imageView );
}
@Override
public int getItemCount() {
return rightbean.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
public MyViewHolder(@NonNull View itemView) {
super( itemView );
}
ImageView imageView;
TextView textView;
}
}
//成品打给就是这个样了了