1.activity的布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v7.widget.RecyclerView android:id="@+id/id_recyclerview" android:divider="#ffff0000" android:dividerHeight="10dp" android:layout_width="match_parent" android:layout_height="match_parent" /></RelativeLayout>
2.Activity
public class RecycleActivity extends AppCompatActivity { private RecyclerView mRecyclerView; private List<String> list = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_recycle); //实例view mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview); //设置RecyclerView管理器 //方法一: // mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); //方法二: LinearLayoutManager layoutManager = new LinearLayoutManager(this); layoutManager.setOrientation(LinearLayoutManager.VERTICAL); mRecyclerView.setLayoutManager(layoutManager); //初始化适配器 RecycleDemoAdapter adapter = new RecycleDemoAdapter(this, list); //设置适配器 mRecyclerView.setAdapter(adapter); //实时更新数据 adapter.update(list); } }
3.adapter的布局文件
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" /> </FrameLayout>
4.adapter
public class RecycleDemoAdapter extends RecyclerView .Adapter<RecycleDemoAdapter.MyHolder>{ Context context; List<String> list; public RecycleDemoAdapter(Context context, List<String> list){ this.context = context; this.list = list; } public void update(List<String> list){ this.list = list; notifyDataSetChanged(); } /* 这个viewholder是用来初始化控件的 */ class MyHolder extends RecyclerView.ViewHolder{ TextView textView; public MyHolder(View itemView){ super(itemView); textView = itemView.findViewById(R.id.text); } } /* 创建viewholder ,引入xml传给viewholder */ @Override public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false); MyHolder myHolder = new MyHolder(view); return myHolder; } /* 这里是我们操作item的地方 */ @Override public void onBindViewHolder(MyHolder holder, int position) { String s = list.get(position); holder.textView.setText(s); //对控件进行监听 holder.textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); //对整个item进行监听 holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); } @Override public int getItemCount() { return list.size(); } }