android - How do you change an image programatically in a viewpager? -
i'm using viewpager image sources webservice, , dynamically add pages viewpager.
but now, i'm testing how change image programatically.
this simple layout:
<?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:orientation="vertical" > <imageview android:id="@+id/imageview1" android:layout_width="match_parent" android:layout_height="match_parent" android:scaletype="centerinside" android:src="@drawable/button_increase" /> </linearlayout> here's instantiateitem viewpager class:
public object instantiateitem(view collection, int position) { layoutinflater inflater = (layoutinflater) collection.getcontext() .getsystemservice(context.layout_inflater_service); view view = inflater.inflate(r.layout.test_layout, null); imageview imageview1= ((imageview)(view)findviewbyid(r.id.imageview1)); imageview1.setimagedrawable(getresources().getdrawable(r.drawable.button_increase)); ((viewpager) collection).addview(view); return view; } i exception on setimagedrawable , here's stacktrace:
06-05 14:58:17.923: e/androidruntime(22982): fatal exception: main 06-05 14:58:17.923: e/androidruntime(22982): java.lang.nullpointerexception 06-05 14:58:17.923: e/androidruntime(22982): @ *project*.mainactivity$custompageradapter.instantiateitem(mainactivity.java:93) 06-05 14:58:17.923: e/androidruntime(22982): @ android.support.v4.view.pageradapter.instantiateitem(pageradapter.java:110) 06-05 14:58:17.923: e/androidruntime(22982): @ android.support.v4.view.viewpager.addnewitem(viewpager.java:649) 06-05 14:58:17.923: e/androidruntime(22982): @ android.support.v4.view.viewpager.populate(viewpager.java:783) 06-05 14:58:17.923: e/androidruntime(22982): @ android.support.v4.view.viewpager.onmeasure(viewpager.java:1016) 06-05 14:58:17.923: e/androidruntime(22982): @ android.view.view.measure(view.java:12863) 06-05 14:58:17.923: e/androidruntime(22982): @ android.widget.relativelayout.measurechildhorizontal(relativelayout.java:594) 06-05 14:58:17.923: e/androidruntime(22982): @ android.widget.relativelayout.onmeasure(relativelayout.java:376) 06-05 14:58:17.923: e/androidruntime(22982): @ android.view.view.measure(view.java:12863) 06-05 14:58:17.923: e/androidruntime(22982): @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:4698) 06-05 14:58:17.923: e/androidruntime(22982): @ android.widget.framelayout.onmeasure(framelayout.java:293) 06-05 14:58:17.923: e/androidruntime(22982): @ android.view.view.measure(view.java:12863) 06-05 14:58:17.923: e/androidruntime(22982): @ android.widget.linearlayout.measurevertical(linearlayout.java:812) 06-05 14:58:17.923: e/androidruntime(22982): @ android.widget.linearlayout.onmeasure(linearlayout.java:553) 06-05 14:58:17.923: e/androidruntime(22982): @ android.view.view.measure(view.java:12863) 06-05 14:58:17.923: e/androidruntime(22982): @ android.view.viewgroup.measurechildwithmargins(viewgroup.java:4698) 06-05 14:58:17.923: e/androidruntime(22982): @ android.widget.framelayout.onmeasure(framelayout.java:293) 06-05 14:58:17.923: e/androidruntime(22982): @ com.android.internal.policy.impl.phonewindow$decorview.onmeasure(phonewindow.java:2256) 06-05 14:58:17.923: e/androidruntime(22982): @ android.view.view.measure(view.java:12863) 06-05 14:58:17.923: e/androidruntime(22982): @ android.view.viewrootimpl.performtraversals(viewrootimpl.java:1197) 06-05 14:58:17.923: e/androidruntime(22982): @ android.view.viewrootimpl.handlemessage(viewrootimpl.java:2585) 06-05 14:58:17.923: e/androidruntime(22982): @ android.os.handler.dispatchmessage(handler.java:99) 06-05 14:58:17.923: e/androidruntime(22982): @ android.os.looper.loop(looper.java:137) 06-05 14:58:17.923: e/androidruntime(22982): @ android.app.activitythread.main(activitythread.java:4507) 06-05 14:58:17.923: e/androidruntime(22982): @ java.lang.reflect.method.invokenative(native method) 06-05 14:58:17.923: e/androidruntime(22982): @ java.lang.reflect.method.invoke(method.java:511) 06-05 14:58:17.923: e/androidruntime(22982): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:790) 06-05 14:58:17.923: e/androidruntime(22982): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:557) 06-05 14:58:17.923: e/androidruntime(22982): @ dalvik.system.nativestart.main(native method) anyone know try? can see kind of measure problem, don't have idea regarding issue.
thanks in advance
instead of
imageview imageview1= ((imageview)(view)findviewbyid(r.id.imageview1)); use
imageview imageview1= ((imageview) view.findviewbyid(r.id.imageview1));
Comments
Post a Comment