Recyclerview Click events

Source: Internet
Author: User

Package Zhangphil.myrecyclerview;import Android.support.v7.app.actionbaractivity;import Android.support.v7.widget.linearlayoutmanager;import Android.support.v7.widget.recyclerview;import Android.support.v7.widget.recyclerview.viewholder;import Android.view.gravity;import Android.view.View;import Android.view.viewgroup;import Android.widget.linearlayout;import Android.widget.textview;import Android.widget.toast;import android.os.bundle;/* * Android Recyclerview Click event * * * Android latest Recyclerview no like before Android L Istview has already provided a callback event such as Onitemclicklistener () in response to user clicks. * If you want to implement a ListView-like onitemclicklistener, we need to write our own code implementation. There are many ideas and solutions to achieve. * The solution to this case is this: * 1th step: Write yourself a public interface Onrecyclerviewitemclicklistener, this interface is used for callback responses. The user's Click event. * 2nd step: Put Onrecyclerviewitemclicklistener new out, is actually complete the interface method inside: Onrecyclerviewitemclicklistener (). We will complete a ListView-like Onitemclicklistener () in the Onrecyclerviewitemclicklistener method body. * 3rd step, key point. Here, a solution that implements the Recyclerview click Response callback has multiple choices and paths, and this case chooses to add a click event to the parameter view in the Viewholder constructor: * Public MyViewHolder (View Itemview) {super (Itemview); Itemview.setonclicklistener (new View.onclicklistener () {@Override public void OnClick (View v) {_click (v);}}); Then we write an extra: _click (View v) and then call _click (v) to trigger the Onrecyclerviewitemclicklistener (Note: More parameters can be carried and passed in this process depending on the requirements): _click ( View v) {Monrecyclerviewitemclicklistener.onrecyclerviewitemclicklistener (this, V, POS); The ability to increase click Response time for Recyclerview is completed. * * * by Phil * * */public class Mainactivity extends Actionbaractivity {//Add Click event Interface part 1private ONRECYCLERVIEWITEMCL Icklistener Monrecyclerviewitemclicklistener = new Onrecyclerviewitemclicklistener () {//Specific click events in this @overridepublic void Onrecyclerviewitemclicklistener (Viewholder holder,view View, int pos) {toast.maketext (Getapplication (), pos + "", Toast.length_short). Show ();}}; Public interface Onrecyclerviewitemclicklistener {public void Onrecyclerviewitemclicklistener (Viewholder holder,view view, int pos);} Private Recyclerview The data set entry for the mrecyclerview;//test. Private final int SIZE =: @OverrideproteCTED void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate); Setcontentview (r.layout.activity _main); Mrecyclerview = (Recyclerview) Findviewbyid (R.id.my_recycler_view); Linearlayoutmanager Mlayoutmanager = new Linearlayoutmanager (this);//orientation=linearlayout.horizontal, Horizontal " ListView ". VERTICAL, is the previous ListView style. Mlayoutmanager.setorientation (linearlayout.horizontal); Mrecyclerview.setlayoutmanager (MLayoutManager); Recyclerview.adapter madapter = new Myrecyclerviewadapter (); Mrecyclerview.setadapter (Madapter);} public class Myrecyclerviewadapter Extendsrecyclerview.adapter<myviewholder> {public myrecyclerviewadapter () { Super ();} @Overridepublic myviewholder Oncreateviewholder (viewgroup viewgroup, int i) {TextView TV = new TextView (Getapplication () ); Tv.setpadding (+, ten, ten); tv.setgravity (Gravity.center); Myviewholder holder = new Myviewholder (TV); holder.text = Tv;return holder;} @Overridepublic void Onbindviewholder (Myviewholder viewholder, int pos) {Viewholder. Text.settext ("POS:" + pos); viewholder.pos = pos;} @Overridepublic int GetItemCount () {return SIZE;}} Private class Myviewholder extends Recyclerview.viewholder {public TextView text;public int pos;public myviewholder (View Itemview) {super (Itemview); Itemview.setonclicklistener (new View.onclicklistener () {@Overridepublic void OnClick ( View v) {_click (v);}});} Add Click event Interface Part 2 to trigger the Click event. Private final void _click (View v) {Monrecyclerviewitemclicklistener.onrecyclerviewitemclicklistener (this, V, POS);}}}


Activity_main.xml

<?xml version= "1.0" encoding= "Utf-8"? ><linearlayout xmlns:android= "http://schemas.android.com/apk/res/ Android "    android:layout_width=" match_parent "    android:layout_height=" match_parent "    android:o rientation= "vertical" >    <android.support.v7.widget.recyclerview        android:id= "@+id/my_recycler_view "        android:layout_width=" match_parent "        android:layout_height=" Match_parent "/></linearlayout>




Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.

Recyclerview Click events

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.