导入依赖;
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.0' compile 'com.jakewharton:butterknife:8.8.0'
testCompile 'junit:junit:4.12' compile 'com.android.support:recyclerview-v7:25.3.1'
布局:
<android.support.v7.widget.RecyclerView android:id="@+id/recyclerview" android:layout_width="fill_parent" android:layout_height="fill_parent" />
适配器:(适配器用到了别的方法获取id,不会用的话换回来就可以了)
public class LoadAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { List<been.DataBean.ReturnDataBean.ComicsBean> items; Context context; OnItemClickListener listener;//定义监听事件 public LoadAdapter(Context context) { this.items = new ArrayList<>(); this.context = context; } /** * 加载新数据 * * @param list * @param page */ public void setItems(List<been.DataBean.ReturnDataBean.ComicsBean> list, int page) { if (page == 1) this.items.clear(); this.items.addAll(list); notifyDataSetChanged(); } /** * 设置监听事件 * * @param listener */ public void setListener(OnItemClickListener listener) { this.listener = listener; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false); return new ComicViewHolder(view); } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) { been.DataBean.ReturnDataBean.ComicsBean item = items.get(position); if (holder instanceof ComicViewHolder) { final ComicViewHolder viewHolder = (ComicViewHolder) holder; viewHolder.name.setText(item.getName()); viewHolder.tag.setText(item.getTags().toString()); viewHolder.description.setText(item.getDescription()); viewHolder.contag.setText("月票"+item.getConTag()); Glide.with(context).load(item.getCover()).into(viewHolder.image); viewHolder.image.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (listener!=null) listener.onImageClick(viewHolder.image,position); } }); } holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (listener != null)//记得判断null listener.onItemClick(view, position); } }); } @Override public int getItemCount() { return items == null ? 0 : items.size(); } static class ComicViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.name) TextView name; @BindView(R.id.tag) TextView tag; @BindView(R.id.description) TextView description; @BindView(R.id.contag) TextView contag; @BindView(R.id.image) ImageView image; public ComicViewHolder(View itemView) { super(itemView); ButterKnife.bind(this, itemView); } } /** * 点击事件回掉接口 */ public interface OnItemClickListener { void onItemClick(View var2, int var3); void onImageClick(View view, int pos); } }
mainActivity:
public class MainActivity extends AppCompatActivity implements LoadAdapter.OnItemClickListener{ private RecyclerView mRecyclerView; private LoadAdapter mAdapter; private String urlPath ="http://app.u17.com/v3/appV3_3/android/phone/list/commonComicList?argValue=23&argName=sort&argCon=0&android_id=4058040115108878&v=3330110&model=GT-P5210&come_from=Tg002&page="; private List<been.DataBean.ReturnDataBean.ComicsBean> list; int page = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); x.view().inject(this); xutils(page); mRecyclerView = (RecyclerView)findViewById(R.id.recyclerview) ; LinearLayoutManager layoutManager = new LinearLayoutManager(this); layoutManager.setOrientation(LinearLayoutManager.VERTICAL); mRecyclerView.setLayoutManager(layoutManager); mAdapter = new LoadAdapter(this); mAdapter.setListener(this); } private void xutils(final int page) { RequestParams entity = new RequestParams(urlPath+page); x.http().get(entity, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { been been = new Gson().fromJson(result, test.com.xrecyclerview.been.class); mAdapter.setItems(been.getData().getReturnData().getComics(), page); mRecyclerView.setAdapter(mAdapter); } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } }); } @Override public void onItemClick(View var2, int var3) { Toast.makeText(this,"点击Item",Toast.LENGTH_LONG).show(); } @Override public void onImageClick(View view, int pos) { Toast.makeText(this,"点击图片",Toast.LENGTH_LONG).show(); } }