package com.example.msi.mpage; import android.content.Context; import android.media.Image; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.GridView; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.SimpleAdapter; import android.widget.TextView; import android.widget.Toast; import com.example.msi.mpage.fragment.FristFragment; import com.jude.rollviewpager.RollPagerView; import com.jude.rollviewpager.adapter.StaticPagerAdapter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class RecyclerAdapter extends RecyclerView.Adapter { private List<Map<String,Object>> Directlists ; private List<Map<String,Object>> Adlists ; private List<Map<String,Object>> Booklists; private String [] booknames =null; private int [] bookImages = null; private String [] Directions = null; private int [] rollImages = null; private Context context; public RecyclerAdapter(String [] booknames,int [] bookImages,String [] Directions,int [] rollImages,Context context) { this.booknames = booknames; this.bookImages = bookImages; this.Directions = Directions; this.rollImages = rollImages; this.context = context; Log.d("TAG", "RecyclerAdapter: "+bookImages.length); Log.d("tag", "RecyclerAdapter: "+booknames.length); } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = null; RecyclerView.ViewHolder holder = null; switch (viewType) { case R.layout.lunbo_item: view = LayoutInflater.from(parent.getContext()).inflate(R.layout.lunbo_item,parent,false); holder = new Rollpager(view); return holder; case R.layout.direction_item: view = LayoutInflater.from(parent.getContext()).inflate(R.layout.direction_item,parent,false); holder = new Direction(view); return holder; case R.layout.advertise_item: view = LayoutInflater.from(parent.getContext()).inflate(R.layout.advertise_item,parent,false); holder = new AdvertiseImage(view); return holder; case R.layout.booklist_item: view = LayoutInflater.from(parent.getContext()).inflate(R.layout.booklist_item,parent,false); holder = new Modules(view); return holder; } // view = LayoutInflater.from(parent.getContext()).inflate(R.layout.booklist_item,parent,false); // holder = new Modules(view); return holder; } @Override public int getItemViewType(int position) { if(position == 0) { return R.layout.lunbo_item; } else if( position == 1) { return R.layout.direction_item; } else if(position == 2) { return R.layout.advertise_item; } else if( position == 3) { return R.layout.booklist_item; } else { return R.layout.booklist_item; } } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if(holder instanceof Rollpager) { Rollpager rollpager = (Rollpager)holder; //設置時間間隔 rollpager.rollPagerView.setPlayDelay(6000); //設置透明度 rollpager.rollPagerView.setAnimationDurtion(500); rollpager.rollPagerView.setAdapter(new TestNormalAdapter()); } else if(holder instanceof Direction) { Direction derectionholder = (Direction) holder; Directlists = new ArrayList<>(); for(int i =0;i<Directions.length;i++) { Map<String,Object> map = new HashMap<>(); map.put("image",R.mipmap.ic_launcher); map.put("name",Directions[i]); Directlists.add(map); } SimpleAdapter adapter = new SimpleAdapter(context,Directlists,R.layout.direction_son_item, new String[]{"image","name"}, new int[]{R.id.directionimage,R.id.directiontext}); derectionholder.gridView.setAdapter(adapter); derectionholder.gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(parent.getContext(),"sd"+position,Toast.LENGTH_SHORT).show(); } }); } else if(holder instanceof AdvertiseImage) { AdvertiseImage adver = (AdvertiseImage) holder; Adlists = new ArrayList<>(); for(int i =0;i<rollImages.length;i++) { Map<String,Object> map = new HashMap<>(); map.put("image",rollImages[i]); Adlists.add(map); } SimpleAdapter adapter = new SimpleAdapter(context,Adlists,R.layout.advertise_son_item, new String[]{"image"}, new int[]{R.id.HotadImage}); adver.gridView1.setAdapter(adapter); } else if(holder instanceof Modules) { Modules modules = (Modules) holder; Booklists = new ArrayList<>(); for(int i =0;i<3;i++) { Map<String,Object> map = new HashMap<>(); map.put("image",rollImages[i+1]); map.put("name",booknames[i]); map.put("bookname",booknames[i]); Booklists.add(map); } modules.Moduletext.setText(Directions[2]); modules.HimageView.setImageResource(rollImages[1]); SimpleAdapter adapter = new SimpleAdapter(context,Booklists,R.layout.booklist_son_item, new String[]{"image","name","bookname"}, new int[]{R.id.bookdetailimage,R.id.bookname,R.id.bookdetail}); modules.gridView.setAdapter(adapter); modules.gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(parent.getContext(),"sd"+position,Toast.LENGTH_SHORT).show(); } }); } } @Override public int getItemCount() { return 14; } public static class Rollpager extends RecyclerView.ViewHolder { public RollPagerView rollPagerView; public Rollpager(View itemView) { super(itemView); rollPagerView = (RollPagerView)itemView.findViewById(R.id.roll_view_pager); } } public static class Direction extends RecyclerView.ViewHolder { public GridView gridView; public TextView directname; public ImageView directImage; public Direction(View itemView) { super(itemView); gridView = (GridView)itemView.findViewById(R.id.RollPagerView); directname = (TextView)itemView.findViewById(R.id.directiontext); directImage =(ImageView)itemView.findViewById(R.id.directionimage); } } public static class AdvertiseImage extends RecyclerView.ViewHolder { public TextView textView; public GridView gridView1; public ImageView imageView; public AdvertiseImage(View itemView) { super(itemView); textView = (TextView)itemView.findViewById(R.id.HotText); gridView1 = (GridView)itemView.findViewById(R.id.HotAd); imageView =(ImageView)itemView.findViewById(R.id.HotadImage); } } public static class Modules extends RecyclerView.ViewHolder { public TextView Moduletext; public GridView gridView; public ImageView HimageView; public TextView listItem; public TextView bookname; public ImageView bookdetailimage; public Modules(View itemView) { super(itemView); Moduletext = (TextView)itemView.findViewById(R.id.ModuleText); gridView = (GridView)itemView.findViewById(R.id.bookdetail); HimageView = (ImageView)itemView.findViewById(R.id.horizenAD); listItem =(TextView)itemView.findViewById(R.id.listItem); bookname = (TextView)itemView.findViewById(R.id.bookname); bookdetailimage = (ImageView)itemView.findViewById(R.id.bookdetailimage); } } private class TestNormalAdapter extends StaticPagerAdapter { @Override public View getView(final ViewGroup container, final int position) { ImageView view = new ImageView(container.getContext()); view.setImageResource(rollImages[position]); view.setScaleType(ImageView.ScaleType.CENTER_CROP); view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Toast.makeText(container.getContext(),"你點擊了"+(position+1),Toast.LENGTH_SHORT).show(); } }); return view; } @Override public int getCount() { return rollImages.length; } } }
Recyclerview的配置多個不同的item
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.