Trying to duplicate code in Demo for CWAC Touchlist and getting errors for Android -
i have been developing on 10 years in languages other java. new android world, i'm trying dive right in. trying make draggable list , found wonderful repos https://github.com/commonsguy/cwac-touchlist dragging , dropping of list items. however, getting error when trying @override drop method droplistener interface. states that: "the method drop(int, int) of type new touchlistview.droplistener(){} must override superclass method"
i tried implement way demo utilizes touchlist application, , copied code in action, , i'm getting same error.
my code:
package bu.homework.shoppinglist; import android.app.listactivity; import android.content.intent; import android.database.cursor; import android.os.bundle; import android.view.contextmenu; import android.view.contextmenu.contextmenuinfo; import android.view.menu; import android.view.menuitem; import android.view.view; import android.widget.adapterview.adaptercontextmenuinfo; import android.widget.listview; import android.widget.simplecursoradapter; import com.commonsware.cwac.tlv.touchlistview; public class itemlistactivity extends listactivity { private static final int activity_create=0; private static final int activity_edit=1; private static final int insert_id = menu.first; private static final int delete_id = menu.first + 1; private itemsmodel mdbhelper; /** called when activity first created. */ @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.item_list); mdbhelper = new itemsmodel(this); mdbhelper.open(); filllist(); touchlistview itemlistview = (touchlistview) getlistview(); itemlistview.setdroplistener(ondrop); system.out.print("on drop"); // itemlistview.setremovelistener(onremove); // registerforcontextmenu(itemlistview); } private touchlistview.droplistener ondrop = new touchlistview.droplistener() { @override public void drop(int from, int to) { system.out.print(from); system.out.print(to); } }; private touchlistview.removelistener onremove = new touchlistview.removelistener() { public void remove(int which) { } }; @override public boolean oncreateoptionsmenu(menu menu) { boolean result = super.oncreateoptionsmenu(menu); menu.add(0, insert_id, 0, r.string.menu_insert); return result; } @override public boolean onmenuitemselected(int featureid, menuitem item) { switch(item.getitemid()) { case insert_id: createitem(); return true; } return super.onmenuitemselected(featureid, item); } @override public boolean onoptionsitemselected(menuitem item) { switch (item.getitemid()) { case insert_id: createitem(); return true; } return super.onoptionsitemselected(item); } @override public void oncreatecontextmenu(contextmenu menu, view v, contextmenuinfo menuinfo) { super.oncreatecontextmenu(menu, v, menuinfo); menu.add(0, delete_id, 0, r.string.menu_delete); } @override public boolean oncontextitemselected(menuitem item) { switch(item.getitemid()) { case delete_id: adaptercontextmenuinfo info = (adaptercontextmenuinfo) item.getmenuinfo(); mdbhelper.deleteitem(info.id); filllist(); return true; } return super.oncontextitemselected(item); } @override protected void onlistitemclick(listview l, view v, int position, long id) { super.onlistitemclick(l, v, position, id); intent = new intent(this, itemeditactivity.class); i.putextra(itemsmodel.key_rowid, id); startactivityforresult(i, activity_edit); } @override protected void onactivityresult(int requestcode, int resultcode, intent intent) { super.onactivityresult(requestcode, resultcode, intent); filllist(); } private void createitem() { intent = new intent(this, itemeditactivity.class); startactivityforresult(i, activity_create); } private void filllist() { // of notes database , create item list cursor itemcursor = mdbhelper.fetchallitems(); startmanagingcursor(itemcursor); // create array specify fields want display in list (only name) string[] = new string[] { itemsmodel.key_name }; // , array of fields want bind fields (in case item_row) int[] = new int[] { r.id.item_row }; // create array adapter , set display using our row simplecursoradapter notes = new simplecursoradapter(this, r.layout.item_row, itemcursor, from, to); setlistadapter(notes); } }
the code isn't near complete, goal combine functionality of android tutorial notepad touchlist.
my question is, doing wrong. there better way drag , drop lists.
thanks, chris swenor
you may building using java 1.5. in java 1.5, cannot use @override
interface method definitions. adopted java 1.6.
however reason drop listener isn't getting triggered.
nothing leaps out @ me going wrong, other i'm not huge fan of system.out.print()
. might try using breakpoints or log.w()
or instead see if issue in logging.
Comments
Post a Comment