android - remove row from another activity -
i have listview inflated custom array adapter , onclick takes activity data related row .after clicking on delete supposed delete item list , list.
i using code below :
int deleteposition=customizedlistview.deleteposition; customizedlistview.list.removeviewat(deleteposition); customizedlistview.adapter.notifydatasetchanged(); finish();
but there error @ line :
customizedlistview.list.removeviewat(deleteposition);
please tell me how fix ?
logcat details:
java.lang.unsupportedoperationexception: removeviewat(int) not supported in adapterview @ android.widget.adapterview.removeviewat(adapterview.java:511) @ com.example.androidhive.openedmsg$1.onclick(openedmsg.java:35) @ android.view.view.performclick(view.java:3549) @ android.view.view$performclick.run(view.java:14393) @ android.os.handler.handlecallback(handler.java:605) @ android.os.handler.dispatchmessage(handler.java:92) @ android.os.looper.loop(looper.java:154) @ android.app.activitythread.main(activitythread.java:4945) @ java.lang.reflect.method.invokenative(native method) @ java.lang.reflect.method.invoke(method.java:511) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:784) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:551) @ dalvik.system.nativestart.main(native method)
the entire code :
customizedlistview.class
public class customizedlistview extends activity { // static variables static final string url = "https://itunes.apple.com/us/rss/topalbums/limit=20/json"; // xml node keys static final string key_song = "song"; // parent node static final string key_id = "id"; static final string key_title = "title"; static final string key_artist = "artist"; static final string key_duration = "duration"; static final string key_thumb_url = "thumb_url"; static listview list; static lazyadapter adapter; hashmap<string, string> map; public static string newactivityno; public static int deleteposition; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); arraylist<hashmap<string, string>> songslist = new arraylist<hashmap<string, string>>(); jsonobject json = jsonfunctions.getjsonfromurl(url); try { jsonobject arr2 = json.getjsonobject("feed"); jsonarray arr = arr2.getjsonarray("entry"); (int = 0; < arr.length(); i++) { jsonobject e1 = arr.getjsonobject(i); jsonarray arr3 = e1.getjsonarray("im:image"); jsonobject arr8 = e1.getjsonobject("im:name"); jsonobject arr10 = e1.getjsonobject("im:artist"); jsonobject e12 = arr3.getjsonobject(0); // creating new hashmap map = new hashmap<string, string>(); map.put(key_thumb_url, e12.getstring("label")); map.put(key_artist, arr8.getstring("label")); map.put(key_title, arr10.getstring("label")); // adding hashlist arraylist songslist.add(map); } } catch (jsonexception e) { // log.e("log_tag", "error parsing data "+e.tostring()); toast.maketext(getbasecontext(), "network communication error!", 5).show(); } list=(listview)findviewbyid(r.id.list); // getting adapter passing xml data arraylist adapter=new lazyadapter(this, songslist); list.setadapter(adapter); // click event single list row list.setonitemclicklistener(new onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { @suppresswarnings("unchecked") hashmap<string, string> o= (hashmap<string, string>) list.getitematposition(position); // toast.maketext(customizedlistview.this, "id '" + o.get("title") + "' clicked.", toast.length_short).show(); deleteposition=position; newactivityno= o.get("title"); intent ii= new intent(getbasecontext(),newactivity.class); startactivity(ii); } }); } }
newactivity.class
public class newactivity extends activity{ @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.newlayout); textview tv1=(textview)findviewbyid(r.id.textview11); textview tv2=(textview)findviewbyid(r.id.textview12); button bn=(button)findviewbyid(r.id.button1); tv2.settext(customizedlistview.newactivityno); bn.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { // todo auto-generated method stub int deleteposition=customizedlistview.deleteposition; customizedlistview.list.removeviewat(deleteposition); customizedlistview.adapter.notifydatasetchanged(); finish(); } }); } }
you approaching problem in wrong manner. rather remove view adapterview, remove data data set , call notifydatasetchanged()
. (this remove unwanted view automatically.)
Comments
Post a Comment