首先点击file-->project-->选中新创建的工程-->dependencies-->点击“+”号-->选中第一个-->找到recyclerview-v7 (com.android.support:recyclerview-v7:25.3.1)-->ok
接着创建布局:
- <android.support.v7.widget.RecyclerView
- android:id="@+id/rv"
- android:layout_width="match_parent"
- android:layout_height="match_parent" />
- public class MainActivity extends AppCompatActivity {
- RecyclerView rv;
- List<String> list=new ArrayList<String>();
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- rv= (RecyclerView) findViewById(R.id.rv);
- //模拟假数据
- for(int i=0;i<100;i++){
- list.add("条目"+i);
- }
- LinearLayoutManager manager=new LinearLayoutManager(this);
- rv.setLayoutManager(manager);
- //创建适配器
- MyAdapter adapter=new MyAdapter();
- rv.setAdapter(adapter);
- //设置点击事件
- adapter.setOnItemClickListener(new OnItemClickListener() {
- @Override
- public void OnItemClick(View view, int position) {
- Toast.makeText(MainActivity.this,"------"+position,Toast.LENGTH_LONG).show();
- }
- });
- }
- 创建适配器
- public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>implements View.OnClickListener{
- //利用接口回调实现点击事件
- 2,再实例,然后创建方法
- private OnItemClickListener mOnItemClickListener = null;
public static interface OnItemClickListener {
void onItemClick(View view , int position);
} - @Override
- public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- //加载布局
- View view=View.inflate(MainActivity.this,R.layout.item,null);
- //3,再点击,每次点击时都会调用此方法
- view.setOnClickListener(this);
//返回加载的视图
return new MyViewHolder(view); - }
- @Override
- public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
- //为每个条目赋值
- ((MyViewHolder)holder).tv.setText(list.get(position));
- //把条目的下标position设置给holder
- holder.itemView.setTag(position);
- }
-
- @Override
public void onClick(View view) {
if (mOnItemClickListener != null) {
//注意这里使用getTag方法获取position
mOnItemClickListener.onItemClick(view,(int)view.getTag());
}
}
public void setOnItemClickListener(OnItemClickListener listener) {
this.mOnItemClickListener = listener;
}
- @Override
- public int getItemCount() {
- //用三元表达式 如果集合list为空的话返回数目为零否则返回集合数目
- return list!=null?list.size():0;
- }
- public class MyViewHolder extends RecyclerView.ViewHolder{
- TextView tv;
- public MyViewHolder(View itemView) {
- super(itemView);
- tv=itemView.findViewById(R.id.tv);
- }
- }
- }
-
- }