Using Android GraphView in a Custom built dialog in a fragment -
i trying add graphview custom built dialog popup, getting nullpointerexception every time.
i have tested both graphview , dialog popup seperately, know both of them correct. can't implement graphview in dialog. stated in headline, of located in fragment,
så here code dialog , graphview:
public void showstatisticwindow(exercise exercise, viewgroup cont) { // graph graphview graph = (graphview) v.findviewbyid(r.id.graph_exercise_statistic); bargraphseries<datapoint> series = new bargraphseries<datapoint>(new datapoint[] { new datapoint(0, -2), new datapoint(1, 5), new datapoint(2, 3), new datapoint(3, 2), new datapoint(4, 6) }); graph.addseries(series); // create dialog / popup final view popupexercisestatisticview = view.inflate(cont.getcontext(), r.layout.popup_statistic_exercise, null); final alertdialog.builder builder = new alertdialog.builder(cont.getcontext()); final alertdialog alert = builder.create(); alert.settitle("create program"); alert.setview(popupexercisestatisticview); builder.setnegativebutton("close", new dialoginterface.onclicklistener() { public void onclick(dialoginterface dialog, int which) { alert.dismiss(); } }); alert.show(); } and here xml layout dialog:
<?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/popup_statistic_exercise"> <com.jjoe64.graphview.graphview android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/graph_exercise_statistic" /> <relativelayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/graph_relativelayout"> <textview android:layout_width="80dp" android:layout_height="wrap_content" android:text="sets" android:id="@+id/sets_names_headline" android:layout_alignparenttop="true" android:layout_alignparentright="true" android:layout_alignparentend="true" android:background="@color/blue_bg_inputfield" android:textalignment="viewstart" android:padding="10dp" /> <linearlayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignparentright="true" android:layout_alignparentend="true" android:layout_below="@+id/sets_names_headline" android:layout_alignleft="@+id/sets_names_headline" android:layout_alignstart="@+id/sets_names_headline" android:background="@color/blue_bg_inputfield" android:paddingleft="10dp" android:paddingtop="3dp" android:paddingbottom="3dp" android:id="@+id/sets_names_list"></linearlayout> </relativelayout> </relativelayout> and lastly, here output console:
java.lang.nullpointerexception @ com.mobileplatformexam.fragments.statisticexercisesfragment.showstatisticwindow(statisticexercisesfragment.java:153) @ com.mobileplatformexam.fragments.statisticexercisesfragment$1.ontouch(statisticexercisesfragment.java:87) @ android.view.view.dispatchtouchevent(view.java:5553) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:1957) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1684) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:1957) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1684) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:1957) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1684) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:1957) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1684) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:1957) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1684) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:1957) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1684) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:1957) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1684) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:1957) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1684) @ android.view.viewgroup.dispatchtransformedtouchevent(viewgroup.java:1957) @ android.view.viewgroup.dispatchtouchevent(viewgroup.java:1684) @ com.android.internal.policy.impl.phonewindow$decorview.superdispatchtouchevent(phonewindow.java:2038) @ com.android.internal.policy.impl.phonewindow.superdispatchtouchevent(phonewindow.java:1396) @ android.app.activity.dispatchtouchevent(activity.java:2535) @ com.android.internal.policy.impl.phonewindow$decorview.dispatchtouchevent(phonewindow.java:1986) @ android.view.view.dispatchpointerevent(view.java:5738) @ android.view.viewrootimpl.deliverpointerevent(viewrootimpl.java:2900) @ android.view.viewrootimpl.handlemessage(viewrootimpl.java:2476) @ android.view.viewrootimpl.processinputevents(viewrootimpl.java:849) @ android.view.viewrootimpl.performtraversals(viewrootimpl.java:863) @ android.view.viewrootimpl.handlemessage(viewrootimpl.java:2452) @ android.os.handler.dispatchmessage(handler.java:99) @ android.os.looper.loop(looper.java:137) @ android.app.activitythread.main(activitythread.java:4476) @ java.lang.reflect.method.invokenative(native method) @ java.lang.reflect.method.invoke(method.java:511) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:816) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:583) @ dalvik.system.nativestart.main(native method) the code on line 153 is:
graph.addseries(series); i hope have idea on wrong. if more information needed, ask.
any appreciated.
it's been 1 year since question asked, i'll leave answer in case need it.
according xml file, graphview element want element of popup_statistic_exercise layout. so, need graphview object after inflate view of dialog uses popup_statistic_exercise layout.
// create dialog / popup final view popupexercisestatisticview = view.inflate(cont.getcontext(), r.layout.popup_statistic_exercise, null); // graph graphview graph = (graphview) popupexercisestatisticview.findviewbyid(r.id.graph_exercise_statistic); bargraphseries<datapoint> series = new bargraphseries<datapoint>(new datapoint[] { new datapoint(0, -2), new datapoint(1, 5), new datapoint(2, 3), new datapoint(3, 2), new datapoint(4, 6) }); graph.addseries(series); final alertdialog.builder builder = new alertdialog.builder(cont.getcontext()); final alertdialog alert = builder.create(); alert.settitle("create program"); alert.setview(popupexercisestatisticview); builder.setnegativebutton("close", new dialoginterface.onclicklistener() { public void onclick(dialoginterface dialog, int which) { alert.dismiss(); } }); alert.show();
Comments
Post a Comment