Activity splitten!?

  • Hallo an alle, ich bin neu in diesem forum und hoffe auf eine hilfreiche zusammenarbeit. B-)


    ich bin in android kein ass daher habt bitte verständnis. zu meinem Problem/frage: ich möchte zwischen zwei activities nicht mittels einen button sondern wie beim swipeview wechseln, also nach rechts oder links verschieben.


    zur besseren verdeutlichung: (sorry, habe nicht geschafft, die fotos hier irgendwie hochzuladen) :-/
    foto1: http://s14.directupload.net/file/d/3118/e8qj7hzj_jpg.htm


    activity A ist ein mediaplayer welches musikdatein abspielt und ein vorgegebenes bild anzeigt.
    activity B ist eine Mapview, sprich, openstreetmaps oder googlemaps.


    zwei verschiedene activites. wie kann man das umsetzen? funktioniert das mittels fragmente oder geht das überhaupt gar nicht?


    ansonsten habe ich mir das so vorgestellt, wenn ich beide in ein layout packe, also nur ein layout habe mit beiden funktionalitäten, ob man das splitten könnte bzw. vertikal verschieben, also zwischen den beiden wie beim swipeview wechseln könnte? das wäre ja im prinzip, naja.. fast das gleiche.


    zur besseren verdeutlichung:
    foto2: http://s14.directupload.net/file/d/3118/ke3phjv5_jpg.htm


    war meine problembeschreibung verständlich? O:-)
    bedanke mich im voraus für die tipps

  • hallo nochmals,


    ich habe das jetzt mit den fragmenten hinbekommen. Habe zum testen zwei fragmente mit jeweils zwei verschiedenen layout hin und her swipen können. alles schön und gut. aber sobald ich einen layout mit googlemaps nutze bekomme ich folgenden fehlermeldung:



    meine klassen sehen so aus:







    ich bin am verzweifeln und bitte um jede mögliche hilfe. :-X

  • Hallo killphil75,


    danke für deine antwort. hmm.... meinst du GoogleMapsApi V2??


    habe eine neues projekt bei eclipse erstellt um erstmal mit dem V2 klar zu kommen. Vorweg: den API-Key müsste man dann auch neu erstellen oder? also für V2. wenn ich das zumindestens richtig verstanden habe. auf der Homepage steht folgendes
    Note: The Google Maps Android API v2 uses a
    new system of managing keys. Existing keys from a Google Maps Android v1
    application, commonly known as MapView, will not work with the v2 API.


    Ich habe ein neues erstellt und bin diesen anleitungen schritt für schritt gefolgt:

    HTML
    https://docs.google.com/document/pub?id=19nQzvKP-CVLd7_VrpwnHfl-AE9fjbJySowONZZtNHzw


    HTML
    https://developers.google.com/maps/documentation/android/start


    beim ausführen bekomme ich folgende fehlermeldungen im logcat:


    weiß du eventuell was das problem ist? aus dem logcat aufzeichnungen werde ich nie schlau ;(
    und danke im voraus

  • Zitat

    01-04 12:28:57.499: E/AndroidRuntime(1032): Caused by: java.lang.ClassCastException: com.google.android.gms.maps.MapFragment cannot be cast to android.support.v4.app.Fragment


    da dürfte das Problem liegen.




    Mit der neuen Google Api habe ich auch noch nix gemacht, da sie erst ab API11 läuft :( .
    Keyerstellung fand ich schon wieder nervig, schon wieder ein neuer Key, langsam verliert man die Übersicht.

  • was heißt denn "cannot be cast to..."?? die library support.v4 ist im projekt integriert.


    @champS: welche zeile meinst du? der code ist der gleiche wie bei den anleitungen (die links die ich gepostet habe).


    die mainactivity:


    die main.xml:


    Code
    <fragment 
    	xmlns:android="http://schemas.android.com/apk/res/android"
    
    
    	 android:id="@+id/map"
    	 android:layout_width="match_parent"
    	 android:layout_height="match_parent"
    	 class="com.google.android.gms.maps.MapFragment"
    />


  • Dein Problem ist das du irgendwo ein MapFragement benutzt und das system will das als Fragment benutzen, dass geht so aber nicht.


    ich vermute in der Mainxml liegt das problem class="com.google.android.gms.maps.MapFragment"


    fragmente schreibt man eh nie ins xml, besser ist es ein Framelayout ins xml zu schreiben und dann programmatisch das framelayout mit dem fragment zu ersetzen

  • @ChampS: danke für deine antwort. wie gesagt habe ich mich lediglich nur an die anleitungen für mapsV2 gehalten. dort steht das, dass man das so machen soll. ansonsten weiß ich natürlich was du meinst. bei v2 ist das allerdings etwas anders.


    es gibt ein samplecode im ordner android-sdk\extras\google\google_play_services\libproject


    im endeffekt sieht die der code dann so aus:



    main.xml


    Code
    <?xml version="1.0" encoding="utf-8"?>
    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/map"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      class="com.google.android.gms.maps.SupportMapFragment"/>


    auf dem emulator funzt das anzeigen der karte nicht, da das noch nicht unterstützt wird. habe es auf meinem smartphone getestet und es geht :)

  • also gehts jetzt?


    wenn nicht wäre da ne andere möglichkeit, und zwar in der neuen api wird openGL benutzt und deswegen muss <uses-feature android:flEsVersion="0x00020000" android:required="true" /> in die manifestdatei geschrieben werden

  • also gehts jetzt?


    wenn nicht wäre da ne andere möglichkeit, und zwar in der neuen api wird openGL benutzt und deswegen muss in die manifestdatei geschrieben werden


    Das sollte die Lösung sein. Hatte gestern die gleiche Fehlermeldung und nach dem Hinzufügen dieser Zeile ging es bei mir. :)

  • Hallo ChampS,


    nein im manifest war alles i.o. was falsch war, war der eintrag im main.xml file, die letzte zeile. da stand nämlich
    class="com.google.android.gms.maps.MapFragment"/>


    richtig ist es so:


    class="com.google.android.gms.maps.SupportMapFragment"/>


    Da das anzeigen nun mit dem map v2 über einen fragment geht, versuche ich nun die ganze zeit das in einen viewpager reinzupacken. ich stehe da echt auf dem schlauch. im sample-code (was ich oben gepostet habe) wird die map in der fragmentactivity instanziiert. ein ganz normaler viewpager hat ja folgende KLassen: MainActivity extends FragmentActivity, Adapter extends FragmentPagerAdapter und ExampleFragment extends Fragment. So kenne ich das zumindestens.


    beim viewpager kann ich aber nicht sowie beim sample-code die instanziierung des maps in der MainActivity extends FragmentActivity durchführen. (oder doch?? ) auf jeden fall kann diese nicht in der ExampleFragment extends Fragment klasse stehen, da SupportFragmentManager benötigt wird welches sich in der klasse
    android.support.v4.app.FragmentActivity.getSupportFragmentManager() befindet. also da komme ich echt nicht weiter. ein tutorial wäre echt super. hat jmd eventuell rat? das wäre echt super korrekt, da das ja eigentlich keine große sache sein kann. danke im voraus

  • hi champS,


    ich habe ein klasse Fragment_Map extends SupportMapFragment welches einen fehler in der methode anzeigt:



    da wo es rot ist, erhalte ich die fehlermeldung:
    The method getSupportFragmentManager() is undefined for the type Fragment_Map


    da ist das problem :/

  • Das liegt daran das es diese Methode getSupportFragmentManager() in einem Fragment nicht gibt. Soweit ich weiß gibt es die nur in Activities.


    In einem Fragment kannst du nur getFragmentManager() nutzen.


    Dieses Problem sollte Eclipse dir eigentlich vor der Laufzeit anzeigen?!

  • Nabend champS,


    ja du hast recht. es wird angezeigt. hatte es auch damit versucht, bekomme trotzdem fehlermeldungen. wobei ich denke, dass es nicht am getFragmentManager() liegt.


    So sieht die FragmentActivity aus:



    so sieht die FragmentPagerAdapter aus:



    Fragment_A:


    Fragment_B (welches die Map anzeigen soll):




    die main.xml:




    fragment_a.xml:




    fragment_b:



    das ist die fehlermeldung im logcat:


    ;(

Jetzt mitmachen!

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