Beiträge von CdWechsler

    hallo block,


    danke für deine hilfe, leider hat es so auch nicht funktioniert. habe es dann mit getResources().getResourceEntryName(i) versucht und es ging. O:-)


    leider hat sich aber nun ein anderes problem dadurch herausgepuppt, und zwar hatte ich ja erwähnt, das ich in meinem projekt auch auf die meta-daten des mp3-files zugreife, also sprich den interpreter, songtitel und eventuell auch songcover abfrage und dem display aufliste. vorher hatte ich nur ein einziges mp3-file im raw ordner um es generell zu testen ob die meta-daten abgerufen wurden. die methode sah so aus, was auch tadellos funktionierte:



    jetzt habe ich ja mehrere mp3-files im raw verzeichnis die zufällig ausgewählt werden. habe die Methode von oben dann dementsprechend geändert in:



    so müsste es eigentlich funktionieren, aber ich bekomme bei mp3_parameter für artist und title stets null und cover ist die gf_cover. irgendwas scheint da mit der uri glaube ich nicht zu stimmen, obwohl ich es in der log ausgegeben und überprüft habe.


    habe folgendes eingegeben:

    Code
    String uriPath2 = "android.resource://" + getPackageName() + "/raw/music";
    String uriPath = "android.resource://" + getPackageName() + "/raw/" + getResources().getResourceEntryName(i);
    Log.e("Ausgabe", uriPath);
    Log.e("Ausgabe", uriPath2);


    ausgabe ist:

    Code
    03-07 10:52:43.250: E/Ausgabe(28800): android.resource://com.example.swipeview3/raw/black_b
    03-07 10:52:43.250: E/Ausgabe(28800): android.resource://com.example.swipeview3/raw/music


    also die uri stimmt eigentlich, warum wird dann aber null ausgegeben? ;(

    mal eine andere Frage: ich habe das etwas umgeschrieben



    was ich nicht verstehe ist, das bei der textview folgendes ausgegeben wird wenn ich z.b. button3 klicke: res/raw/rock_c.mp3
    es wird stets der pfad des mp3 angezeigt. schön und gut. in der log bekomme ich aber eine komische zahl ausgegeben:


    03-06 13:01:05.520: E/Ausgabe:(31072): 2130968578


    wieso bekomme ich in der log eine komische zahl und in der textview einen pfad ausgegeben? das verstehe ich nicht.


    zudem hatte ich vorher in einem anderen musikplayer-projekt, welches auch die metainformationen des mp3-files ausliest, einen mp3 file im raw ordner. auf den mp3-file habe ich folgendermaßen zugegriffen:


    Code
    String uriPath = "android.resource://" + getPackageName() + "/raw/music";
    Uri uri = Uri.parse(uriPath);


    in meinem jetztigen projekt kann ich das aber nicht übernehmen, da der integer-wert eine komischer zahl ist. habe folgendes mal gemacht um zu sehen was ausgegeben wird:

    Code
    String uriPath = "android.resource://" + getPackageName() + i;
    					String uriPath2 = "android.resource://" + getPackageName() + "/raw/music";
    					Log.e("Ausgabe: ", uriPath);
    					Log.e("Ausgabe: ", uriPath2);


    Ausgabe ist:


    Code
    03-06 13:09:23.680: E/Ausgabe:(31456): android.resource://com.example.testproject2130968577
    03-06 13:09:23.680: E/Ausgabe:(31456): android.resource://com.example.testproject/raw/music


    warum ist das so? kann mir das einer erklären? :-/

    Hallo block,


    danke für deine ratschläge und hilfe. Hat super geklappt.


    so funzt es:



    wäre es auch möglich, dass immer beim drücken eines buttons stets eine andere musik abgespielt wird? ich habe ja pro genre nur 3 musikstücke. es kam vor dass die gleiche mukke 3-4 mal hintereinander zufällig gewählt wurde. bei 3 musikstücken ist das sehr wahrscheinlich.

    in zeile 65 steht mp.start();


    hier ist der komplette code:


    hallo,


    ich beschäftige mich momentan mit einem musikplayer welches 3 buttons hat um damit 3 verschiedene musik-genren abzuspielen. wenn man einen button drückt, soll es zufällig aus der gewählten genre ein musikstück abspielen. leider denke ich etwas kompliziert und habe versucht das so zu lösen.


    also button1 soll nur von der genre "black" abspielen,
    button2 die genre "jazz" und
    button 3 die genre "rock".


    dafür habe ich einen raw-ordner erstellt wo sich 9 verschiedene musikdatein befinden. jede genre beinhaltet 3 musikstücke (daher 9 insgesamt). die habe ich auch folgendermaßen benannt:
    black_a, black_b und black_c
    jazz_a, jazz_b, jazz_c
    rock_a, rock_b, rock_c
    (alle befinden sich im raw-ordner)


    dann habe ich für jede Genre einen String-array erstellt:


    Die Onlick-Methode für button1 sieht so aus:

    Code
    public void PlaylistStadt(View v) {
    		Uri musicpath = Uri.parse(playlist_Black[r.nextInt(playlist_Black.length)]);
    		String path = playlist_Black[r.nextInt(playlist_Black.length)];
    		textView.setText(path);
    
    
    			mp = MediaPlayer.create(getApplicationContext(), musicpath);
    			mp.start();
    	}


    Fehlermeldung:



    keine ahnung ob meine methode richtig bzw. gut ist, mir ist leider keine weiteren eingefallen. von der fehlermeldung werde ich auch nicht schlau. wie könnte man das lösen? hat jmd. eine ratschlag oder eine lösung?

    hallo drumliner,


    danke für deine promte antwort. Ich habe einen XMLHandler, die habe ich folgendermaßen angepasst habe:



    habe dann in die MainActivity folgendes eingegeben: umfeld.setText(xmlHandler.getInformation());


    bekomme diesmal eine NullPointerException. Ist das überhaupt richtig wie ich das gemacht habe? oder muß man doch anders vorgehen?

    kann mir noch einmal einer erklären, wie man die daten, welche man mit einem Thread abfragt, an die Mainactivity übergibt? ich würde es gerne an einer Textview übergeben aber bekomme es einfach nicht hin.




    So bekomme ich "Error" in der log

    Hallo an alle,


    ich möchte ein app schreiben die den standort ermittelt und sobald sich der aktuelle standort sich vom letzt gemerkten standort 50 meter unterscheidet (also die entferntung) dann soll ein integerwert um eins hochgezählt werden.


    Bsp: Standort A (longitute X1, latitude Y1) gemerkt. Sobald 50 meter von Standort A entfernt, speichere Standort B (longitute X2, latitude Y2) und zähle i um eins hoch. und so weiter...


    ich denke mal schon, dass das irgendwie möglich ist, leider habe ich keinerlei eine vorstellung und auch keine idee wie ich überprüfen kann, dass sich mein standort um 50 meter vom letzt gespeicherten punkt entfernt hat. da weiß ich nicht, wie man da herangehen kann. gibt es extra Methoden/klassen für sowas? für jeden kleinen tipp wäre ich sehr dankbar.

    Hallo Lucas,


    also ich habe es gerade mit einem timer versucht (nach 5 sekunden sollte nach dem inhalt geparst werden), hat irgendwie auch nicht gefunzt. hmm... mit dem breakpoints kenne ich mich nicht so aus, habe gerade gegoogelt und heruasgefunden wie man diese setzt etc. hat aber auch nichts gebracht. das ist ja echt blöd. der code stimmt ja eigentlich, die url auch. totz allem kommt null raus. das ist ja zum mäuse melken :O

    Zu 1) ne hab nix geändert beim handler sowie bei xmlDataCollected. das ist komisch. wenn einer das auch bestätigen würde, häte ich eine vermutung, z.b das es daran liegen könnte, das sofort nach dem string abfragt wird, obwohl die werte noch nicht vorliegen, da die seite ja ein paar sekunden zum laden braucht. (bin mir aber nicht sicher)


    zu 2) ah ok. danke ;)

    morgäähn,


    also ich habe das mit dem thread gemacht, bekomme auch keine fehlermeldung mehr ;)


    jedoch bekomme ich als Ergebnis immer null :-/


    lucas, wie hast du das gemacht?? wieso kommt bei dir das gewünschte ergebnis und bei mir net?? ;(


    der code wenn auf den button geklickt wird, wird der thread gestartet:


    Code
    public void MainActivity ....
    ...
    public void ReadXML(View v) 
    	{
    		readXMLThread = new ReadXMLThread();
    		Thread thread = new Thread(readXMLThread);
    		thread.start();
    }
    ....


    der Thread:


    eine zusätzliche frage noch: in einem thread kann ich z.b. wenn ich das ergebnis habe (also einen string), den nicht an eine textview zuweisen oder? also im obigen code z.b. könnte man nicht string information an eine textview zuweisen?? habe das versucht, bekam einen error. (das ist eine allgemeine frage was bezogen ist auf threads)

    Zudem hatte ja der user drumliner in einem anderen thread von mir folgendes zu der NetworkOnMainThreadException gepostet:

    Hauptfehler ist hier, dass du die Daten im MainThread laden möchtest,
    was nicht mehr gestattet ist. Würdest du gleiches auf alten Android
    Systemen probieren würdest du merken, dass das funktioniert.




    In der aktuellen Variante ist es aber so, dass Google dich dazu zwingt
    diese Dinge im AsyncTask bzw. in einem Thread laufen zu lassen, damit
    der Mainthread nicht von solchen Dingen blockiert wird.


    hmm... habe ich gerade nochmal gelesen. ok, dann werde ich es erstmal auf 2.3.3 versuchen und anschließend mit einem thread.

    Woah... Lucas :D :-O


    danke für deine mühe, wirklich. Das finde ich voll korrekt. musste zwischendurch lachen als ich deinen beitrag las (z.b. bei ...Och mennoooo, falsche AndroidManifest.xml angepasst... +knurr+) :D


    ich habe mal das so übernommen wie du es gepostet hast in meine ReadXML methode. wenn ich diese ausführe, bekomme ich ganz andere fehlermeldungen als du !?!!!? (waarruuum??) :-X ;(



    im debug modus hängt sich das auf. kannst du aus der fehlermeldung was anfangen? ich raffe gar nix. will der eine httpURLconnectioN oder was?

    Hallo Lucas,


    danke für deinen post. ich möchte beide varianten umsetzen (also einmal die paramter aus der runtergeladen xml-file auslesen und online aus einer xml-seite). ich habe dazu bei youtube einen videotutoiral gefunden (Android Application Development Tutorial) (ab folge 154 - 159) da hat der nette Travis (der typ der die videos gepostet hat) gezeigt, wie man aus einer internetseite xml-parameter liest. und zwar hat er eine einfache app geschrieben, wo er in eine editText ein stadt eingibt und nachdem er auf einen button klickt, die Temperatur von der eingegeben stadt anzeigt. sobald er auf einen button klickt, holt er sich die temperaturwert aus der xml einer wetterdienstseite. ich bin mal seinen code gefolgt, jedoch bekomme ich ich nicht den gewünschten wert.


    Die mainActivity sieht folgendermaßen aus:


    die ReadXML()-Methode ist dabei die OnClickMethode vom Button read.


    XMLDataCollected.class


    de XMLHandler


    bekomme keine fehlermeldung wenn ich auf den button klicke. jedoch bekomme ich im textview die "Error :( " message, welche ich in der try-catch methode definiert habe. kann es am link liegen (vielleicht braucht die seite ein paar sekunden bis diese geladen ist) oder doch an code?

    ich möchte nur bestimmte schlüsselwörter auslesen, wie oft diese in der xml-file vorkommen. mehr nicht. O:-)


    NACHTRAG:


    in meinem 1. beitrag habe ich einen beipsiel link gepostet. so sehen die xml-datein aus. das sind ortsbezogene daten, genauer gesagt daten von openstreetmaps. ich möchte z.b. alle 500 meter eine xml-datei runterladen und die schlüsselwörter wie "landuse" auswerten. mit auswerten meine ich z.b. wie oft diese in der xml-file vorkommen. kurz gesagt, alle 500 meter lade ich eine neue datei runter und werte diese aus. wäre dann der SAX parser trotzdem zu empfehlen? oder doch der DOM? oder direkt wie drumliner gepostet hat, die werte auslesen?


    bin etwas verwirrt ehrlich gesagt :-/

    ah ok, das versuche ich mal gleich. habe gerade was von einem documentBuilderFactory gelesen. Bei stackoverflow-forum haben welche fragen gestellt, wie man xml-datein umwandelt in documente. wäre das überflüssig, oder ist das umwandeln in ein document und auslesen aus einem document der effizientere weg im ganzen, als nur von einem xml-datei auszuslesen?