Я пытаюсь добавить GraphView в свое настраиваемое диалоговое всплывающее окно, но каждый раз я получаю исключение NullPointerException.Использование Android GraphView в настраиваемом диалоговом окне в фрагменте
Я тестировал всплывающее окно GraphView и Dialog отдельно, поэтому я знаю, что они оба правильные. Я просто не могу реализовать GraphView в диалоговом окне. Как указано в заголовке, все это находится в фрагменте,
Så здесь код для диалога и graphview:
public void showStatisticWindow(Exercise exercise, ViewGroup cont) {
// Get the 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 the 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 the program");
alert.setView(popupExerciseStatisticView);
builder.setNegativeButton("Close", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
alert.dismiss();
} });
alert.show();
}
А вот расположение XML для диалога:
<?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>
И, наконец, вот выход из консоли:
java.lang.NullPointerException
at com.mobileplatformexam.fragments.StatisticExercisesFragment.showStatisticWindow(StatisticExercisesFragment.java:153)
at com.mobileplatformexam.fragments.StatisticExercisesFragment$1.onTouch(StatisticExercisesFragment.java:87)
at android.view.View.dispatchTouchEvent(View.java:5553)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1684)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1684)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1684)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1684)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1684)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1684)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1684)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1684)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1684)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2038)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1396)
at android.app.Activity.dispatchTouchEvent(Activity.java:2535)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1986)
at android.view.View.dispatchPointerEvent(View.java:5738)
at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:2900)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2476)
at android.view.ViewRootImpl.processInputEvents(ViewRootImpl.java:849)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:863)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2452)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4476)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:816)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:583)
at dalvik.system.NativeStart.main(Native Method)
Код в строке 153:
graph.addSeries(series);
Я надеюсь, что у кого-то есть представление о том, что может быть неправильно. Если вам нужна дополнительная информация, просто спросите.
Любая помощь будет принята с благодарностью.
Что такое код в строке 153 –
Когда был инициализирован 'v'? –
в onCreateView (LayoutInflater inflater, контейнер ViewGroup, Bundle savedInstanceState), который вызывает метод в моем вопросе. Но я могу легко создать собственный диалог без графика. Когда я добавляю его в диалог, все идет не так. – Langkiller