事件处理:
class MyRecyclerViewCell extends RecyclerView.ViewHolder implements View.OnClickListener {
public TextView tvTitle,tvContent;
public Button btnClickMe;
public MyRecyclerViewCell(View cellView) {
super(cellView);
tvTitle = (TextView) cellView.findViewById(R.id.tvTitle);
tvContent = (TextView) cellView.findViewById(R.id.tvContent);
btnClickMe = (Button) cellView.findViewById(R.id.btnClickMe);
<span style="color:#ff0000;">cellView.setOnClickListener(this);//cell本身的事件,</span><span style="color: rgb(255, 0, 0); font-family: Arial, Helvetica, sans-serif;">MyRecyclerViewCell有自己的layout.xml</span><span style="color:#ff0000;">
btnClickMe.setOnClickListener(this);//cell上button上的button的事件</span>
}
/**
* Called when a view has been clicked.
*
* @param v The view that was clicked.
*/
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btnClickMe:
Toast.makeText(v.getContext(),"btn clicked",Toast.LENGTH_SHORT).show();
break;
case R.id.rvCell:
Toast.makeText(v.getContext(),"cell clicked",Toast.LENGTH_SHORT).show();
break;
}
}
}
布局:
public class MyRecyclerMainFragment extends Fragment {
private RecyclerView rv;
public MyRecyclerMainFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
rv = new RecyclerView(getActivity());
//grid布局
//第2个参数是列数,第3个是横向还是竖向
rv.setLayoutManager(new GridLayoutManager(getActivity(),4,GridLayoutManager.VERTICAL,false));//true的时候把cell上的内容顺序反转
//线程布局
// rv.setLayoutManager(new LinearLayoutManager(getActivity()));
// rv.setLayoutManager(new LinearLayoutManager(getActivity(),LinearLayoutManager.HORIZONTAL,false));//true的时候把cell上的内容顺序反转
rv.setAdapter(new MyRecyclerAdapter());
return rv;
}
}