android - Error on Fragment? -


hello developing android app , new development. facing on error says:

error:(134, 19) error: recyclertouchlistener not abstract , not override abstract method onrequestdisallowintercepttouchevent(boolean) in onitemtouchlistener

here code above error appears

fragmentdrawer.java

public class fragmentdrawer extends fragment {      private static string tag = fragmentdrawer.class.getsimplename();      private recyclerview recyclerview;     private actionbardrawertoggle mdrawertoggle;     private drawerlayout mdrawerlayout;     private navigationdraweradapter adapter;     private view containerview;     private static string[] titles = null;     private fragmentdrawerlistener drawerlistener;      public fragmentdrawer() {      }      public void setdrawerlistener(fragmentdrawerlistener listener) {         this.drawerlistener = listener;     }      public static list<navdraweritem> getdata() {         list<navdraweritem> data = new arraylist<>();           // preparing navigation drawer items         (int = 0; < titles.length; i++) {             navdraweritem navitem = new navdraweritem();             navitem.settitle(titles[i]);             data.add(navitem);         }         return data;     }      @override     public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);          // drawer labels         titles = getactivity().getresources().getstringarray(r.array.nav_drawer_labels);     }      @override     public view oncreateview(layoutinflater inflater, viewgroup container,                              bundle savedinstancestate) {         // inflating view layout         view layout = inflater.inflate(r.layout.fragment_navigation_drawer, container, false);        recyclerview = (recyclerview) layout.findviewbyid(r.id.drawerlist);          adapter = new navigationdraweradapter(getactivity(), getdata());         recyclerview.setadapter(adapter);         recyclerview.setlayoutmanager(new linearlayoutmanager(getactivity()));         recyclerview.addonitemtouchlistener(new recyclertouchlistener(getactivity(), recyclerview, new clicklistener() {             @override             public void onclick(view view, int position) {                 drawerlistener.ondraweritemselected(view, position);                 mdrawerlayout.closedrawer(containerview);             }              @override             public void onlongclick(view view, int position) {              }         }));          return layout;     }       public void setup(int fragmentid, drawerlayout drawerlayout, final toolbar toolbar) {         containerview = getactivity().findviewbyid(fragmentid);         mdrawerlayout = drawerlayout;         mdrawertoggle = new actionbardrawertoggle(getactivity(), drawerlayout, toolbar, r.string.drawer_open, r.string.drawer_close) {             @override             public void ondraweropened(view drawerview) {                 super.ondraweropened(drawerview);                 getactivity().invalidateoptionsmenu();             }              @override             public void ondrawerclosed(view drawerview) {                 super.ondrawerclosed(drawerview);                 getactivity().invalidateoptionsmenu();             }              @override             public void ondrawerslide(view drawerview, float slideoffset) {                 super.ondrawerslide(drawerview, slideoffset);                 toolbar.setalpha(1 - slideoffset / 2);             }         };          mdrawerlayout.setdrawerlistener(mdrawertoggle);         mdrawerlayout.post(new runnable() {             @override             public void run() {                 mdrawertoggle.syncstate();             }         });      }      public static interface clicklistener {         public void onclick(view view, int position);          public void onlongclick(view view, int position);     }     static class recyclertouchlistener implements recyclerview.onitemtouchlistener {          private gesturedetector gesturedetector;         private clicklistener clicklistener;          public recyclertouchlistener(context context, final recyclerview recyclerview, final clicklistener clicklistener) {             this.clicklistener = clicklistener;             gesturedetector = new gesturedetector(context, new gesturedetector.simpleongesturelistener() {                 @override                 public boolean onsingletapup(motionevent e) {                     return true;                 }                  @override                 public void onlongpress(motionevent e) {                     view child = recyclerview.findchildviewunder(e.getx(), e.gety());                     if (child != null && clicklistener != null) {                         clicklistener.onlongclick(child, recyclerview.getchildposition(child));                     }                 }             });         }          @override         public boolean onintercepttouchevent(recyclerview rv, motionevent e) {              view child = rv.findchildviewunder(e.getx(), e.gety());             if (child != null && clicklistener != null && gesturedetector.ontouchevent(e)) {                 clicklistener.onclick(child, rv.getchildposition(child));             }             return false;         }          @override         public void ontouchevent(recyclerview rv, motionevent e) {         }     }    /* public void myclickmethod(view v) {         switch(v.getid()) {             // doing         }     }*/      public interface fragmentdrawerlistener {         public void ondraweritemselected(view view, int position);     } 

mainactivity.java

    public class mainactivity extends actionbaractivity implements fragmentdrawer.fragmentdrawerlistener {      private static string tag = mainactivity.class.getsimplename();     private charsequence mdrawertitle;     private actionbar actionbar;     // used store app title     private charsequence mtitle;     private toolbar mtoolbar;     private fragmentdrawer drawerfragment;     private actionbardrawertoggle mdrawertoggle;     private fragment fra;    // fragmenttransaction fragmenttransaction = fragmentmanager.begintransaction();     view view;      @override     protected void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_main);          imageview myimage = (imageview) findviewbyid(r.id.imageview);         myimage.setalpha(50);         mtoolbar = (toolbar) findviewbyid(r.id.tool_bar1);         setsupportactionbar(mtoolbar);         mtoolbar.setnavigationicon(r.drawable.logofinal);         mtitle = mdrawertitle = gettitle();        /* getsupportactionbar().setdisplayshowhomeenabled(true);         getsupportactionbar().sethomebuttonenabled(false);*/         drawerfragment = (fragmentdrawer) getsupportfragmentmanager().findfragmentbyid(r.id.fragment_navigation_drawer);         drawerfragment.setup(r.id.fragment_navigation_drawer, (drawerlayout) findviewbyid(r.id.drawer_layout), mtoolbar);         drawerfragment.setdrawerlistener(this);  /**  * creating buttons instances  * */         // dashboard news feed button          /*button btn_newsfeed = (button)findviewbyid(r.id.btn_news_feed);         btn_newsfeed.setonclicklistener(new view.onclicklistener() {              @override             public void onclick(view view) {                 switch(view.getid())                 {                     case r.id.btn_news_feed:                         fra= new homefragment();                          break;                 }             }         });         button btn_friends = (button) findviewbyid(r.id.btn_events);         btn_friends.setonclicklistener(new view.onclicklistener() {              @override             public void onclick(view view) {                 switch(view.getid())                 {                      case r.id.btn_events:                         fra= new contactfragment();                         break;                 }             }         });*/        // dashboard friends button         button btn_newsfeed = (button)findviewbyid(r.id.btn_news_feed);          button btn_friends = (button) findviewbyid(r.id.btn_friends);          // dashboard messages button         button btn_messages = (button) findviewbyid(r.id.btn_messages);          // dashboard places button         button btn_places = (button) findviewbyid(r.id.btn_places);          // dashboard events button         button btn_events = (button) findviewbyid(r.id.btn_events);          // dashboard photos button         button btn_photos = (button) findviewbyid(r.id.btn_photos);          //button btn_maps = (button) findviewbyid(r.id.btn_maps);          /**          * handling button click events          * */         // listening news feed button click*/             btn_friends.setonclicklistener(new view.onclicklistener() {              @override             public void onclick(view view) {                 // launching news feed screen                 intent = new intent(mainactivity.this, aboutactivity.class);                 startactivity(i);             }         });         // listening friends button click          btn_newsfeed.setonclicklistener(new view.onclicklistener() {              @override             public void onclick(view view) {                 // launching news feed screen                 intent = new intent(mainactivity.this, homefragment.class);                 startactivity(i);             }         });          // listening messages button click         btn_messages.setonclicklistener(new view.onclicklistener() {              @override             public void onclick(view view) {                 // launching news feed screen                 intent = new intent(mainactivity.this, messagesfragment.class);                 startactivity(i);             }         });          // listening places button click         btn_places.setonclicklistener(new view.onclicklistener() {              @override             public void onclick(view view) {                 // launching news feed screen                 intent = new intent(mainactivity.this, friendsfragment.class);                 startactivity(i);             }         });          // listening events button click         btn_events.setonclicklistener(new view.onclicklistener() {              @override             public void onclick(view view) {                 // launching news feed screen                 intent = new intent(mainactivity.this, campusfragment.class);                 startactivity(i);             }         });          // listening photos button click         btn_photos.setonclicklistener(new view.onclicklistener() {              @override             public void onclick(view view) {                 // launching news feed screen                 intent = new intent(mainactivity.this, contactfragment.class);                 startactivity(i);             }         }); }    /* public void myclickmethod(view v) {         switch (v.getid()) {             case r.id.btn_news_feed:                 intent = new intent(mainactivity.this, homefragment.class);                 startactivity(i);                 break;             default:                 break;         }      }*/       @override     public boolean oncreateoptionsmenu(menu menu) {         // inflate menu; adds items action bar if present.         getmenuinflater().inflate(r.menu.menu_main, menu);         return true;     }     static class adapter extends fragmentpageradapter {         private final list<fragment> mfragments = new arraylist<>();         private final list<string> mfragmenttitles = new arraylist<>();          public adapter(fragmentmanager fm) {             super(fm);         }          public void addfragment(fragment fragment, string title) {             mfragments.add(fragment);             mfragmenttitles.add(title);         }          @override         public fragment getitem(int position) {             return mfragments.get(position);         }          @override         public int getcount() {             return mfragments.size();         }          @override         public charsequence getpagetitle(int position) {             return mfragmenttitles.get(position);         }     }     @override     public boolean onoptionsitemselected(menuitem item) {         // handle action bar item clicks here. action bar         // automatically handle clicks on home/up button, long         // specify parent activity in androidmanifest.xml.         int id = item.getitemid();          //noinspection simplifiableifstatement         if (id == r.id.action_settings) {             return true;         }          if(id == r.id.action_search){             toast.maketext(getapplicationcontext(), "search action selected!", toast.length_short).show();             return true;         }          return super.onoptionsitemselected(item);     }     public void settitle(charsequence title) {         mtitle = title;         getsupportactionbar().settitle(mtitle);     }      @override     public void ondraweritemselected(view view, int position) {         displayview(position);     }      private void displayview(int position) {         fragment fragment = null;         intent intent;         string title = getstring(r.string.app_name);         switch (position) {             case 0:                 intent = new intent(mainactivity.this, homefragment.class);                 title = getstring(r.string.title_home);                 startactivity(i);                  break;             case 1:                 = new intent(mainactivity.this, friendsfragment.class);                 title = getstring(r.string.title_friends);                 startactivity(i);                  break;             case 2:                intent i2=new intent(getapplicationcontext(),messagesfragment.class);                 title = getstring(r.string.title_messages);                 startactivity(i2);                  break;            /* case 3:                 intent i1 = new intent(mainactivity.this, friendsfragment.class);                 startactivity(i1);                 title = getstring(r.string.title_department);                 startactivity(i1);                  break;*/             case 3:                 = new intent(mainactivity.this, campusfragment.class);                 title = getstring(r.string.title_campus_life);                 startactivity(i);                  break;             case 4:                 = new intent(mainactivity.this, contactfragment.class);                 title = getstring(r.string.title_contact);                 startactivity(i);                  break;             default:                 break;         }          if (fragment != null) {             fragmentmanager fragmentmanager = getsupportfragmentmanager();             fragmenttransaction fragmenttransaction = fragmentmanager.begintransaction();             fragmenttransaction.replace(r.id.container_body, fragment);             fragmenttransaction.commit();              // set toolbar title             getsupportactionbar().settitle(title);         }     }     public void onbackpressed() {          alertdialog.builder alertdlg = new alertdialog.builder(this);           alertdlg.setmessage("are sure want exit?");          alertdlg.setcancelable(false);           alertdlg.setpositivebutton("yes", new dialoginterface.onclicklistener() {                       public void onclick(dialoginterface dialog, int id) {                          mainactivity.super.onbackpressed();                      }                  }          );          alertdlg.setnegativebutton("no", new dialoginterface.onclicklistener() {              @override              public void onclick(dialoginterface dialog, int which) {                  // nothing              }          });          alertdlg.create().show();     } } 

would grateful if helps me.

it sounds need override onrequestdisallowtouchevent() method on recyclertouchlistener.

try adding within recyclertouchlistener class:

@override public void onrequestdisallowintercepttouchevent(boolean disallowintercept)  { } 

so.. code should this:

 public recyclertouchlistener(context context, final recyclerview recyclerview, final clicklistener clicklistener) {             this.clicklistener = clicklistener;             gesturedetector = new gesturedetector(context, new gesturedetector.simpleongesturelistener() {                 @override                 public boolean onsingletapup(motionevent e) {                     return true;                 }                  @override                 public void onlongpress(motionevent e) {                     view child = recyclerview.findchildviewunder(e.getx(), e.gety());                     if (child != null && clicklistener != null) {                         clicklistener.onlongclick(child, recyclerview.getchildposition(child));                     }                 }             });             @override            public void onrequestdisallowintercepttouchevent(boolean disallowintercept){             }         } 

you can refer this question more info.

i hope helps!


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -