Androidplot, programm stuerzt ab bei LineAndPointFormatter

  • Hallo,


    ich bin neu bei der Programmierung von Apps fuer Android. Ich verwende Eclipse.


    Nun habe ich meine erste App in der Entwicklung. Als Ausgangspunkt habe ich folgendes Tutorial genommen, dass ein slide-in-menu implementiert auf der Basis von fragment : http://www.androidhive.info/20…-using-navigation-drawer/
    Ich erwaehne das, da ich zunaechst davon ausgegangen bin, dass der Fehler mit Androidplot an den Fragments liegt. Allerdings tritt er auch auf wenn ich den Beispielcode in der OnCreate prozedur der main_activity packe.
    Der Beispielcode von der android-plot homepage sieht so aus (http://androidplot.com/docs/quickstart/) und funktioniert in einer Beispiel-App ohne Probleme:



    Nun habe ich den Code in das onCreate Ereignis meines Fragments gepackt. Dies sieht so aus:



    Der Anfang funktioniert bis zur Zeile mit LineAndPointFormatter. Wenn ich alles ab LineAndPointFormatter auskommentiere, dann startet die App. Wenn ich allerdings LineAndPointFormatter drin habe dann gibt es beim Appstart eine Fehlermeldung und die APP beendet sich gleich wieder. Woran liegt das?


    Gutelo

  • Wenn ich den code in onCreateView packe, dann geht die LineAndPointFormatter auch noch, aber er schmiert bei addSeries ab. Haengt das eventuel mit dem View zusammen?


    Was ich noch bemerkt habe: Wenn ich nach der plot = ... Zeile ein plot.setTitle("Was mache ich falsch"); einfuege dann geht es auch nicht. Irgendwie scheint er plot nicht richtig zuzuweisen.

  • Ist es gute Praxis wenn man folgendes macht:




    und spaeter in den Subroutinen ueber RV auf das View zugreift? Oder wie macht man es sonst?


    Gutelo

  • Da hast Du Dir aber die Nacht um die Ohren gehauen. ;)


    Ja, es ist eine sehr gute Idee, Instanzvariablen anzulegen, wenn man sie methodenübergreifend benutzen will.


    Allerdings würde ich es weder RV noch rootView nennen.
    plotView wäre vermutlich angebrachter, wenn es das View sein soll, in das geplottet werden soll.


    Auch kannst Du Dir eine Zuweisung sparen.

    Java
    View rootView = inflater.inflate(R.layout.fragment_graph, container, false); 
    RV = rootView;
    
    
    // Ist dasselbe wie
    
    
    RV = inflater.inflate(R.layout.fragment_graph, container, false);

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • die frage ist warum möchtest du zu einem späteren zeitpunkt auf die rootview zugreifen?


    XYPlot plot = (XYPlot) getActivity().findViewById(R.id.mySimpleXYPlot);


    das ist einfach dein problem.
    Du musst eine globale variable für plot uninstanziiert anlegen und dann in deinem onCreateView eine instanz über rootView.findViewById zuweisen. Oder den code ganz ins onCreateView packen.


    Du kannst nur über die rootView auf die XML Elemente zugreifen, aber ich würde die rootView nicht aus der onCreateView rausgeben.
    Frag mich nicht warum, ist ein Bauchgefühl. Hab das so in der Praxis aber auch noch nicht gesehen das es aus der onCreateView rausgegeben wird.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!