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' compile 'com.youth.banner:banner:1.4.9' compile 'com.github.bumptech.glide:glide:3.7.0' compile 'com.android.support:mediarouter-v7:25.0.0' compile 'com.android.support:appcompat-v7:25.0.0' compile 'com.android.support:recyclerview-v7:25.0.0' compile 'com.jcodecraeer:xrecyclerview:1.3.2' compile files('libs/universal-image-loader-1.9.3.jar')
Myapp
public static MyApp mInstance; @Override public void onCreate() { super.onCreate(); mInstance = this; ImageLoaderConfiguration defaultcof = ImageLoaderConfiguration.createDefault(getApplicationContext()); ImageLoader.getInstance().init(defaultcof); } public static MyApp getInstance() { return mInstance; }
权限
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.VIBRATE" />
XRecycler上拉下拉
<com.jcodecraeer.xrecyclerview.XRecyclerView android:layout_width="match_parent" android:id="@+id/xrecycler" android:layout_height="match_parent"> </com.jcodecraeer.xrecyclerview.XRecyclerView>
xRecyclerView.setLoadingListener(new XRecyclerView.LoadingListener() { @Override public void onRefresh() { Toast.makeText(getActivity(),"已刷新",Toast.LENGTH_SHORT).show(); xRecyclerView.refreshComplete(); } @Override public void onLoadMore() { Toast.makeText(getActivity(),"已加载更多",Toast.LENGTH_SHORT).show(); xRecyclerView.refreshComplete(); } });XRecyclerView包含recyclerView和Banner的适配器
public class MyXRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { ArrayList<SuperClass.NewslistBean> list; Context context; RecyclerAdapter adapter; ArrayList mlist; public MyXRecyclerAdapter(ArrayList<SuperClass.NewslistBean> list, Context context) { this.list = list; this.context = context; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { MViewHolder viewHolder = new MViewHolder(LayoutInflater.from(context).inflate(R.layout.item_xrecycler,null)); return viewHolder; } @Override public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) { mlist =new ArrayList(); for(int i=0; i<list.size();i++){ mlist.add(list.get(i).getPicUrl()); } ((MViewHolder)holder).mbanner.setImageLoader(new GlideImaGlideImageLoadergeLoader()); ((MViewHolder)holder).mbanner.setImages(mlist); ((MViewHolder)holder).mbanner.start(); ((MViewHolder) holder).recyclerView.setLayoutManager(new LinearLayoutManager(context)); adapter = new RecyclerAdapter(context,list); ((MViewHolder) holder).recyclerView.setAdapter(adapter);//点击事件 adapter.setOnItemClickLitener(new RecyclerAdapter.OnItemClickLitener() { @Override public void onItemClick(View view, int position) { Toast.makeText(context, position + " click", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(context,ShowActivity.class); context.startActivity(intent); } @Override public void onItemLongClick(View view, int position) { Toast.makeText(context, position + " long click", Toast.LENGTH_SHORT).show(); } }); } @Override public int getItemCount() { return 1; } class MViewHolder extends RecyclerView.ViewHolder{ Banner mbanner; RecyclerView recyclerView; public MViewHolder(View itemView) { super(itemView); mbanner = (Banner) itemView.findViewById(R.id.mybanner); recyclerView = (RecyclerView) itemView.findViewById(R.id.item_recycler); } } }
recyclerview多条目加载加点击接口
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { Context context; ArrayList<SuperClass.NewslistBean> list; public RecyclerAdapter(Context context, ArrayList<SuperClass.NewslistBean> list) { this.context = context; this.list = list; } private enum Type{ Type_one,Type_two } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if(viewType == Type.Type_one.ordinal()){ View view = LayoutInflater.from(context).inflate(R.layout.item_recyclera,null); MyViewHolderA viewHolder = new MyViewHolderA(view); return viewHolder; }else if(viewType == Type.Type_two.ordinal()){ View view = LayoutInflater.from(context).inflate(R.layout.item_recyclerb,null); MyViewHolderB viewHolder = new MyViewHolderB(view); return viewHolder; } return null; } @Override public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) { if(holder instanceof MyViewHolderA){ ((MyViewHolderA) holder).texta.setText(list.get(position).getTitle()); }else if(holder instanceof MyViewHolderB){ String bitUrl = list.get(position).getPicUrl(); ImageLoader loader = ImageLoader.getInstance(); loader.displayImage(bitUrl,((MyViewHolderB) holder).head); ((MyViewHolderB) holder).textb.setText(list.get(position).getTitle()); } if (mOnItemClickLitener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int pos = holder.getLayoutPosition(); mOnItemClickLitener.onItemClick(holder.itemView, pos); } }); holder.itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { int pos = holder.getLayoutPosition(); mOnItemClickLitener.onItemLongClick(holder.itemView, pos); return false; } }); } } @Override public int getItemViewType(int position) { if(position==0){ return Type.Type_one.ordinal(); }else if(position==1){ return Type.Type_one.ordinal(); }else if(position==2){ return Type.Type_one.ordinal(); }else{ return Type.Type_two.ordinal(); } } @Override public int getItemCount() { return list.size(); } class MyViewHolderA extends RecyclerView.ViewHolder{ TextView texta; public MyViewHolderA(View itemView) { super(itemView); texta = (TextView) itemView.findViewById(R.id.recyclera_text); } } class MyViewHolderB extends RecyclerView.ViewHolder{ TextView textb; ImageView head; public MyViewHolderB(View itemView) { super(itemView); textb = (TextView) itemView.findViewById(R.id.recyclerb_text); head = (ImageView) itemView.findViewById(R.id.recyclerb_head); } } public interface OnItemClickLitener { void onItemClick(View view, int position); void onItemLongClick(View view , int position); } private OnItemClickLitener mOnItemClickLitener; public void setOnItemClickLitener(OnItemClickLitener mOnItemClickLitener) { this.mOnItemClickLitener = mOnItemClickLitener; } }