效果图
MainActivity
<span style="font-size:18px;">public class MainActivity extends Activity {
//
private RecyclerView mRecyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化RecyclerView
mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview);
// RecyclerView设置展示的的样式(listView样子,gridView样子,瀑布流样子)
// listView纵向滑动样子
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
mRecyclerView.setLayoutManager(linearLayoutManager);
// 获取数据,向适配器传数据,绑定适配器
ArrayList<String> datas = initData();
HomeAdapter honmeAdapter = new HomeAdapter(MainActivity.this,datas);
mRecyclerView.setAdapter(honmeAdapter);
// 条目点击事件调用
honmeAdapter.setOnItemListener(new HomeAdapter.OnItemListener() {
@Override
public void onClick(View v, int position, String str) {
Toast.makeText(MainActivity.this, "条目被点击了"+position, Toast.LENGTH_SHORT).show();
}
});
// 条目长按事件被调用
honmeAdapter.setOnLongItemListener(new HomeAdapter.OnLongItemListener() {
@Override
public void onClick(View v, int position, String str) {
Toast.makeText(MainActivity.this, "条目被长按了"+position, Toast.LENGTH_SHORT).show();
}
});
}
/**
* 编写一套假数据
*/
protected ArrayList<String> initData() {
ArrayList<String> mDatas = new ArrayList<String>();
for (int i = 0; i < 100; i++) {
mDatas.add("我是条目" + i);
}
return mDatas;
}
}</span>
适配器中:
HomeAdapter
源码下载:class HomeAdapter extends RecyclerView.Adapter<HomeAdapter.MyViewHolder> { private Context context; private ArrayList<String> list; private OnItemListener listener; private OnLongItemListener onLongItemListener; public HomeAdapter(Context context, ArrayList<String> list) { this.context=context; this.list=list; } // 点击事件 public void setOnItemListener(OnItemListener onItemListener) { this.listener = onItemListener; } public interface OnItemListener { void onClick(View v, int position, String str); } // 长按事件 public void setOnLongItemListener(OnLongItemListener onLongItemListener) { this.onLongItemListener = onLongItemListener; } public interface OnLongItemListener { void onClick(View v, int position, String str); } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { MyViewHolder holder = new MyViewHolder(LayoutInflater.from( context).inflate(R.layout.item_home, parent, false)); return holder; } @Override public void onBindViewHolder(MyViewHolder holder, int position) { holder.tv.setText(list.get(position)); } @Override public int getItemCount() { return list.size(); } /** * ViewHolder的类,用于缓存控件 */ class MyViewHolder extends RecyclerView.ViewHolder { TextView tv; public MyViewHolder(View itemView) { super(itemView); tv = (TextView) itemView.findViewById(R.id.id_num); // 条目点击事件,给参数赋值 itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (listener != null) { listener.onClick(v, getLayoutPosition(), list.get(getLayoutPosition())); } } }); // 条目长按事件,给参数赋值 itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { if (onLongItemListener != null) { onLongItemListener.onClick(v, getLayoutPosition(), list.get(getLayoutPosition())); } return false; } }); } } }
http://download.csdn.net/detail/zhaihaohao1/9580194