Beiträge von UweApps

    Funktioniert es denn oder funktioniert es nicht?? Dazu hast du nix geschrieben...


    Aber ich würde im TabWidget die minWidth rausnehmen, denn die bezieht sich auf das gesamte TabWidget und nicht (wie du vielleicht wolltest) auf die einzelnen Tabs. Für die weiß ich nämlich auch nicht, wie man deren Breite einstellt, die werden nämlich gar nicht als View-Elemente irgendwie mal erwähnt. Muss man wohl über getChildAt holen und erst mal den Typ feststellen, den View-Typ casten und dann die richtigen Methoden aufrufen...

    Es ist leider wirklich nicht einfach mit Calendar...


    Wenn du DAY_OF_WEEK benutzt, dann ist SUNDAY die 1, MONDAY die 2 etc... Du bist also mit der -1 richtig in der Umrechung auf den Array-Index.


    Wahre Mathematiker rechnen übrigens dann (DAY_OF_WEEK - SUNDAY) und sind damit auf der sicheren Seite... 8)

    OH - Feler Nummer 2 hab ich ja noch gar nicht gesehen...


    Probiere mal

    Java
    new Date(2012-1900, 2-1, 23);


    Wir wollen ja das Datum im Februar und nicht im März - die Zählung der Monate beginnt bei 0 für Januar!!!


    Sei froh, dass wir ein Schaltjahr haben, sonst wäre uns das Problem erst nächsten Monat aufgefallen!!!


    Bei Tagesangaben geht's dagegen bei 1 los.


    Und bei Jahren mit 1900 - nun haben wir es fast...


    Es kann auch noch Probleme geben, wenn man Stunden in am/pm eingeben kann, und wenn man 3 Tage addiert, sollte man lieber 3*24*60*60*1000 milliseconds addieren...


    Datumsangaben sind schon eine kleine Wissenschaft für sich...

    OK - eine Idee hab ich noch: es gibt Probleme, wenn im Installationspfad von Eclipse/AndroidSDK ein Verzeichnis mit Leerzeichen ist, also z.B. /Program Files/...


    Eclipse ist zum Glück recht entspannt, was den Installationsort angeht, du könntest erst mal versuchen, einfach das Eclipse noch mal auspacken im Download-Ordner und dann den Ordner Eclipse ins Hauptverzeichnis verschieben.


    Dort drin dann Eclipse mit 'nem Doppelklick starten (später leg dir einen eigenen Starter an, der das neue Verzeichnis nutzt). Dann leider noch mal die ganze Installation von Android-SDK und Download der SDK-Images, AVDs bauen, Projekt einrichten, testen.


    Wenn du mutig bist, kannst du auch mal deinen bereits vorhandenen und genutzten Eclipse-Ordner ins Hauptverzeichnis schieben und mal vorsichtig starten - mit viel Glück könnte das auch klappen. Ich denke nicht, dass du dir die Installation dabei zerschießt, aber wenn du Eclipse auch für anderes benutzt, dann empfehle ich eine zweite Installation im Hauptverzeichnis wie zuvor beschrieben.

    ok - Firewall ausschalten ist meistens eine schlechte Idee - entweder ist dein PC dann total offen oder total zu - je nachdem was die Firewall dann macht. *g*


    Aber diese Meldungen kenne ich leider gar nicht - ich arbeite unter Linux und da hatte ich nie Probleme, bei mir sieht das so aus:


    Code
    [2012-02-21 23:02:04 - VortragsZeitPlanerPro] ------------------------------
    [2012-02-21 23:02:04 - VortragsZeitPlanerPro] Android Launch!
    [2012-02-21 23:02:04 - VortragsZeitPlanerPro] adb is running normally.
    [2012-02-21 23:02:04 - VortragsZeitPlanerPro] Performing de.uwegerdes.apps.vortragszeitplanerpro.VortraegeListActivity activity launch
    ... usw ....


    Vielleicht wirklich noch mal ein neues Projekt als Android-Projekt anlegen, Hello World reinbasteln und über Run as... Android Application neu starten.


    Du kannst auch mal eine "ältere" AVD bauen, vielleicht klappt es damit... *däumchendrück*


    Ansonsten muss ich leider passen und hoffe, dass jemand anderes die Lösung kennt. :-[

    Die Fehlermeldung deutet darauf hin, dass Eclipse mal keine Verbindung zum Diagnose-Port des Emulators aufbauen kann, da gehen nämlich u.a. die wichtigen Meldungen aber auch die Installation auf dem Emulatorsystem rüber. Manchmal hat Eclipse da ein Problem, das nach Neustart von Eclipse meistens behoben ist. Ich hab aber auch schon erlebt (nach fiesen Abstürzen), dass der Port blockiert war - aber nach Neustart des Computers ging das dann auch wieder.


    Es könnte aber auch eine zu hart eingestellte lokale Firewall sein - obwohl lokal eigentlich alle Ports benutzt werden dürfen...


    Du brauchst den Emulator aber gar nicht vorher zu starten, das macht Eclipse - in Eclipse musst du aber mindestens einmal auf dem Projekt rechts-Klick und Run as... Android Application aufrufen, damit deine App auf jeden Fall richtig gestartet wird. Später kannst du dir dann in den Run Configurations einstellen, ob er dich immer fragen soll, in welchem Emulator deine App laufen soll.


    Der Start des Emulators dauert aber länger - es wird ja das gesamte Android-System hochgefahren. Je nach Rechner kann das ein bis zwei Minuten dauern. Einfach Geduld haben.


    Interessanter wird es, wenn du nicht im Console sondern im LogCat nachschaust, dann siehst du (hoffentlich) auch alles, was dann in Android noch gestartet wird.


    Irgendwann solltest du dann den Entsprerr-Bildschirm von Android sehen - dann laufen noch weitere Meldungen im LogCat, dann kannst du entsperren und deine App sollte erscheinen.


    Ich muss allerdings zugeben, dass ich beim Starten des Emulators in der Anfangszeit auch einige Probleme hatte, hab auch meine ersten Projekte erst mal wieder gelöscht und neu angelegt, irgendwann hatte ich dann den Bogen raus...

    Möchtest du eine Android-App entwickeln oder eine HTML5-Anwendung?


    Im ersten Fall bist du hier richtig, aber js und css gibt's dann nicht, sonder java und xml (für Layout etc., aber auch für deine Daten). Außerdem Eclipse, Android-SDK, AVD, etc.


    Fragen zu HTML5 tauchen hier im Forum eher sehr selten auf, ich weiß auch nicht, wie der Erfahrungsschatz der aktiven User hier ist...

    Du kannst natürlich auch den Inhalt einer XML-Datei behandeln wie eine normale Text-Datei und dir die Inhalte selber raussuchen. Bei deinen ersten Tests wirst du damit auch bestimmt erst mal weiterkommen und hast schon mal die Sicherheit, dass du die Daten in der Hand hast.


    XML-Dateien werden einmal von Android selber verwendet (strings, layouts, styles, drawables...) - dann kannst du über API-Methoden darauf zugreifen (z.B. getString, findViewById).


    Der andere Anwendungsbereich für XML sind deine Daten, die du entweder schon im Projekt als XML-Dateien mitlieferst (meist im Verzeichnis ./res/raw/) oder die du z.B. übers Internet holst.


    Und bei diesen Dateien willst du (hoffentlich) flexibel auf die Inhalte reagieren (SAX) oder die Struktur des XML als Document-Objekt benutzen/ändern/verschicken/speichern (DOM).


    Dann musst du parsen!!!

    Du musst nur die beiden kleiner/größer-Zeichen austauschen - voila.


    Java
    @Override
    public int compareTo(Object vergleichuser) {
        User other = (User) vergleichuser;
        if (points > other.getPoints())
            return -1;
        else if (points < other.getPoints()) {
            return 1;
        }
        return 0;
    }


    Du kannst stattdessen aber auch die 1 und -1 vertauschen (bzw. das - umsetzen).

    Die Date-Objekte (und auch Calendar) rechnen intern mit long millisecondsSince1970 und die Jahreszahl wird beim Erzeugen auf den Startpunkt 1900 addiert.


    Das rechnet Linux schon so und das hat Java (und viele anderen Programmiersprachen, aber nicht alle) auch so übernommen.


    Dieses führt auch zu den Funktions-Paaren getYear / getFullYear usw. - einmal auf 1900 bezogen und einmal auf das gewohnte Kalenderjahr.

    stimmt - android:layout_weight="1" ist der Parameter, um verbleibenden Platz zu füllen.


    Man kann das auch nutzen, um z.B. bei mehreren Elementen eine entsprechende Verteilung hinzubekommen. Dann muss man aber erst mal rumprobieren, bis alles richtig sitzt, die Werte können auch float-Werte sein (z.B. 0.3, 0.7).


    Android schaut sich erst die Mindest-Größe aller Elemente an und im zweiten Durchlauf wird dann u.a. layout_weight benutzt, um den restlichen Platz zu verteilen. Dabei soll in den Elementen mit layout_weight die layout_height="wrap_content" (oder layout_width="0dp") sein, damit die Berechnung nicht gestört wird.

    OK Titus - aber dann sag auch, warum das so funktioniert... *g*


    Bei der Addition mir einem leeren String vor dem Plus-Zeichen wird die String-Addition aktiviert, d.h. für das nachfolgende Objekt wird (falls nötig) die Methode toString() aufgerufen.


    Eigentlich heißt das nämlich:

    Java
    String tmp = TextView.getText().toString();


    nur sind das mehr Buchstaben - aber eine Addition weniger. O:-)


    Und ein guter Grund, um in eigenen Klassen immer eine toString()-Methode zu implementieren, dann kann man nämlich einfache String-Additionen bei eigenen Objekten machen, ohne immer toString() schreiben zu müssen.

    Kommt drauf an - wenn du dieselbe Activity für alle deine Sachen aufrufen willst, dann musst du im Intent einfach einen Parameter mitgeben (hast du int position im Listener-Aufruf, sonst was anderes benutzen):

    Java
    intent.putExtra("Speisebezeichnung", position);


    Und in der zweiten Activity wieder auslesen:

    Java
    Intent i = getIntent();
    int position = i.getIntExtra("Speisebezeichnung", -1);


    Wahrscheinlich willst du aber nicht die Position in der Liste sondern einen String übergeben - aber das hängt davon ab, was du genau implementierst.


    Wenn du aber mehrere verschiedene Activities aufrufen willst, dann musst du dir überlegen, wie du die Zuordnung zwischen Listenposition und den jeweiligen Activities speicherst und dann in einer if- oder case-Struktur auswerten.

    sechste Änderung - hatte hauptsächlich Leseprobleme bei deinem Code (siehe P.S.) - aber der Hauptfehler war, dass compareTo unbedingt Object haben will (Gruß an killphil - ich habs auch erst in Eclipse gemerkt).


    Java
    @Override
    public int compareTo(Object vergleichuser) {
    	User other = (User) vergleichuser;
    	if (points < other.getPoints())
    		return -1;
    	else if (points > other.getPoints()) {
    		return 1;
    	}
    	return 0;
    }


    Weitere Info: du hast "public static void main" immer noch drin stehen - das gilt bei einfachen Java-Programmen, aber bei Apps gibt's kein main.
    Den Inhalt deiner main kannst du besser woanders in deiner App unterbringen, z.B. in onCreate bei einer Activity...


    P.S.: im Editor gibt's oben einen Button mit 'ner Kaffeetasse für Java-Code, dann kann ich deinen Code besser lesen... ;)

    Mir ging es eigentlich gar nicht um die Größe, die die Datei hat, sondern darum, dass du sie innerhalb der App herausfindest.


    Bei Textdateien kommt auch ein Anfänger darauf, sie sich einfach anzeigen zu lassen, bei Sounds wird das schwieriger.


    Wenn man aber von einer Datei die Größe auslesen kann, dann hat man auf jeden Fall die richtige Datei am Wickel.


    Was aber noch wichtiger ist: du hast dein Problem selbst erfolgreich gelöst. 8)

    ich bin mir nicht ganz sicher, weil ich so was auch noch nicht gemacht hab, aber es gibt einen wichtigen Unterschied, wenn man Android-Resources und eigene Resources benutzt: bei den ersteren steht android. davor - bei deinen eigenen eher nicht...


    Ansonsten kannst du die Uri auch erst mal in einer eigenen Variable speichern und einfach mal gucken, ob du auf die Datei überhaupt zugreifen kannst (hat sie eine Größe?).