java - overridePendingTransition not work in adapter(android) -
i want run new activity in adapter use animation, have error
06-19 09:54:29.253: e/androidruntime(11464): fatal exception: main 06-19 09:54:29.253: e/androidruntime(11464): java.lang.classcastexception: android.app.application cannot cast android.app.activity 06-19 09:54:29.253: e/androidruntime(11464): @ apdapters.newsadapter$3.onclick(newsadapter.java:134) 06-19 09:54:29.253: e/androidruntime(11464): @ android.view.view.performclick(view.java:3517) 06-19 09:54:29.253: e/androidruntime(11464): @ android.view.view$performclick.run(view.java:14155) 06-19 09:54:29.253: e/androidruntime(11464): @ android.os.handler.handlecallback(handler.java:605) 06-19 09:54:29.253: e/androidruntime(11464): @ android.os.handler.dispatchmessage(handler.java:92) 06-19 09:54:29.253: e/androidruntime(11464): @ android.os.looper.loop(looper.java:154) 06-19 09:54:29.253: e/androidruntime(11464): @ android.app.activitythread.main(activitythread.java:4624) 06-19 09:54:29.253: e/androidruntime(11464): @ java.lang.reflect.method.invokenative(native method) 06-19 09:54:29.253: e/androidruntime(11464): @ java.lang.reflect.method.invoke(method.java:511) 06-19 09:54:29.253: e/androidruntime(11464): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:809) 06-19 09:54:29.253: e/androidruntime(11464): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:576) 06-19 09:54:29.253: e/androidruntime(11464): @ dalvik.system.nativestart.main(native method) bottom code, dont know not work
holder.newsitem.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { if(isonline()) { intent = new intent(); i.setclass(getcontext(), newsdetali.class); i.putextra("id", arraylistnews.get(position).getid()); i.setflags(intent.flag_activity_new_task); context.startactivity(i); //error line ((activity) context).overridependingtransition(r.anim.pull_in_left, r.anim.push_out_right); } else { toast.maketext(getcontext(), "Отсутствует подключение к интернету", toast.length_long).show(); } } }); upd:
all code
public class newsadapter extends arrayadapter<newsobject>{ arraylist<newsobject> arraylistnews; int resourse; context context; layoutinflater vi; private imageloader imageloader; final view imagelayout; //final progressbar spinner; public newsadapter(context context, int resource, arraylist<newsobject> objects, imageloader imageloader) { super(context, resource, objects); arraylistnews = objects; resourse = resource; this.context = context; vi = (layoutinflater) context.getsystemservice(context.layout_inflater_service); this.imageloader = imageloader; imagelayout = vi.inflate(r.layout.item_pager_image, null); //spinner = (progressbar) imagelayout.findviewbyid(r.id.loading); } @override public view getview(final int position, view convertview, viewgroup parent) { final viewholder holder; if(convertview == null) { convertview = vi.inflate(resourse, null); holder = new viewholder(); typeface face=typeface.createfromasset(context.getassets(), "font/avenirnext-regular.ttf"); holder.imagenews = (imageview) convertview.findviewbyid(r.id.imagenews); holder.namenews = (textview) convertview.findviewbyid(r.id.namenews); holder.datenews = (textview) convertview.findviewbyid(r.id.datenews); holder.newsitem = (relativelayout) convertview.findviewbyid(r.id.newsitemadapter); holder.loadimg = (playgifview) convertview.findviewbyid(r.id.loading_bg); holder.namenews.settypeface(face); holder.datenews.settypeface(face); convertview.settag(holder); } else { holder = (viewholder) convertview.gettag(); } imageloader.displayimage(arraylistnews.get(position).getimagelink(), holder.imagenews, null, new imageloadinglistener() { @override public void onloadingstarted(string arg0, view arg1) { } @override public void onloadingfailed(string arg0, view arg1, failreason arg2) { } @override public void onloadingcomplete(string arg0, view arg1, bitmap arg2) { int color = color.parsecolor("#4d000000"); //the color u want holder.imagenews.setcolorfilter(color); holder.namenews.settext(arraylistnews.get(position).getname()); holder.datenews.settext(arraylistnews.get(position).getdate()); } @override public void onloadingcancelled(string arg0, view arg1) { log.e("script", "onloadeingstarted"); } }, new imageloadingprogresslistener() { @override public void onprogressupdate(string uri, view view, int current, int total) { log.e("script", "onprogressupdate" + uri + " " + total); } }); holder.newsitem.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { intent = new intent(getcontext(), newsdetali.class); i.putextra("id", arraylistnews.get(position).getid()); i.putextra("title", arraylistnews.get(position).getname()); i.putextra("image", arraylistnews.get(position).getimagelink()); i.putextra("description", arraylistnews.get(position).getdescription()); i.setflags(intent.flag_activity_new_task); context.startactivity(i); //danger line!!! error overridependingtransition(r.anim.pull_in_left, r.anim.push_out_right); } }); return convertview; } static class viewholder { public imageview imagenews; public textview namenews; public textview datenews; public relativelayout newsitem; public playgifview loadimg; } }
change code
intent intent = new intent(firstactivity.this, secondactivity.class); bundle b = new bundle(); b.putint("key", 1); //your id intent.putextras(b); //put id next intent startactivity(intent); getactivity().overridependingtransition(r.anim.pull_in_left, r.anim.push_out_right); then receive in newactivity
bundle b = getintent().getextras(); int value = b.getint("key");
Comments
Post a Comment