Beiträge von Marco Feltmann

    Hmm dafür das die Funktionalität noch recht überschaubar ist, verstehe ich nicht warum die App erst ab Android 4 läuft.


    Und ich verstehe einfach nicht, warum noch so unendlich viele 2.x unterwegs sind.
    Die SDK-Unterschiede zwischen 2.3 und 4.0 sind so dermaßen gravierend, dass ein Parallelbetrieb irgendwann unmöglich scheint.
    Aber klar, warum sollten HTC, Samsung und Co. ihre drei Jahre alten Geräte auf 4.0 aktualisieren? Sollen die Leute doch neue Geräte kaufen... +sigh+


    Also unter 2.3 hatte ich nie irgendwelche derartigen Navigationselemente gesehen.
    Ich glaube nicht, dass ich als versierter 2.3 Nutzer damit klar käme.


    Ebensowenig wie ein Windowsbenutzer seinen Schließen-/Minimieren- und Vollbildbutton oben links im Fenster haben will.
    Abwärtskompatibiltät ist so ein Problem, bei dem ich seit 4.0 für mich noch keinen vernünftigen Kompromiss gefunden habe...

    Ich fürchte fast, dass das nicht so einfach wird.
    Es ist meines Wissens nicht vorgesehen, bestimmte Geräte auf Grund einer unterstützten Fähigkeit auszuschließen.


    Bezüglich der Größen sagt auch die offizielle Dokumentation, dass der Unterschied zwischen einem Tablet und einem Smartphone verschwindend gering sein kann:
    http://developer.android.com/g…ml#DeclaringTabletLayouts


    Schlimmer noch, das Nexus 4 hat mittlerweile fast eine höhere Auflösung als einige alte 7" Tablets.
    Insofern fürchte ich fast, dass du das nicht groß ausschließen kannst.
    Jetzt wäre also die Frage, warum die Smartphone Variante nicht für das Tablet herunterladbar sein sollte (mit je nach Zustand aktivierter oder deaktivierter Telefoniekomponente).
    Wenn es wirklich einen gravierenden Grund für zweigleisige Programme gibt, dann musst du die Anfrage vermutlich an den Google Support weiterleiten.


    (Das ist halt ein Nachteil, wenn es so viel unterschiedliche Hardware zu unterstützen gilt.)

    Moin Andi,


    mir ist beim Umstieg eigentlich nur ein Problem aufgefallen: Eclipse.
    Bin jetzt auf Intellij umgestiegen, doch die schweigt sich gern über die Parameter aus.
    Prinzipiell kein Problem, denn bei vielen Dingen kann man sich schon denken was gemeint ist.

    Java
    InputStream.read()
    InputStream.read(byte[])
    InputStream.read(byte[], int, int)


    Fies wird es dann aber bei

    Java
    PreferencesManager.Editor.putString(String, String)


    Ich kann mir nie merken, wer davon jetzt der Key und wer der Valuestring ist...


    Der Nachteil an Methodenüberladung...
    In meiner 'Heimatsprache' heißen die Methoden nämlich eher

    C
    InputStream.readByte()
    InputStream.readByteBuffer(byte[])
    InputStream.readByteBufferPositionLength(byte[], int, int)
    PreferencesManager.Editor.setStringForKey(String, String)


    Wie dem auch sei, die größte Hürde ist wie bei allen Programmiersprachen nicht die Syntax und auch nicht unbedingt die Konzepte, sondern das dahinter liegende Framework.
    Weiterhin treibt mich die starre Typisierung in den Wahnsinn, aber das Problem dürftest du nicht haben. :)


    Für Konzepte und Co für Java im Allgemeinen gibt es ein feines OpenBook:
    http://openbook.galileocomputing.de/javainsel/
    Meiner Erinnerung nach ist es so allgemein gehalten, dass die Dinge auch in Android implementiert sind, weshalb es sich zum Lernen von Java auf Android auch recht gut eignet.


    Viel Spaß und Erfolg! :)

    Also für den Anwendungsfall würde ich eher ein Kontextmenü denn einen Spinner nutzen.
    Ansonsten sind Spinner ja Auswahlwerkzeuge, die selbst eigentlich nix weiter tun als eine Auswahl zu ermöglichen.
    Eine Aktion sollte dann also lieber über einen Button geschehen.


    Der OnItemSelected Listener wird nur dann ausgeführt, wenn sich die Selektion auch geändert hat?
    Das ist ja ziemlich dämlich. Aber da der Spinner ja irgendwas tut, wird vielleicht der OnNothingSelected Listener aufgerufen.
    Versuch's doch mal damit. :)

    Moin,


    im Play Store unter 4.0.3 gibt es ja eine Warnung, wenn man große Dateien herunterladen möchte und nicht im WLAN hängt.
    Irgendwas von Wegen Zeit und Kosten verursachend.


    Gibt es das auch komplett fertig, so dass ich das nutzen kann?
    (Ja, ich bin faul. ^^)

    Moin,


    ich bin auf der Suche nach einem UI Element, dass ich so nicht finde...


    Dabei handelt es sich um eine Art ProgressDialog, nur mit unterschiedlichen Fortschrittsbalken.


    Der Dateimanager der Firma Rhythmsoft hat das ganz schick umgesetzt:
    https://play.google.com/store/…EsImNvbS5yaG1zb2Z0LmZtIl0.


    Meinen genauen Darstellungswunsch sieht man hier ganz schön:
    https://lh3.ggpht.com/WJSW8F5H…96NomJjffR949gcuhy8se3Wuc


    Also oben soll dann 'Aktuell' der Fortschritt der einzelnen Datei stehen, unten das 'Gesamtpaket' prozentual gesehen.
    Gibt's da vielleicht was von Android?
    Oder kennt jemand eine Sammlung mit UIs, in denen etwas Derartiges zu finden ist?


    Irgendwie bin ich unfähig, einen nicht abbrechbaren Dialog realisiert zu bekommen, weshalb ich mir hier die Arbeit gern erleichtern würde.
    Ansonsten freue ich mich auch über Links zu halbwegs verständlicheren Hinweisen zur Erstellung eines Dialogs mit eigenem UI.
    Also verständlicher als http://developer.android.com/g…dialogs.html#CustomLayout oder "Android 3: Apps entwicklen mit dem Android SDK" Seite 143.


    Vielen Dank fürs Durchlesen. :)

    Das verschiebt gerade mein Problem etwas.
    Die Fallunterscheidung hat herausgebracht, dass der Simulator als getExternalStorageState() NICHT MEDIA_MOUNTED hat.
    Nur wo schreibe ich jetzt in diesem Fall hin? Weder getDataDirectory() noch getDownloadCacheDirectory() wollen sich beschreiben lassen. +sigh+


    // Nachtrag
    [Blockierte Grafik: http://www.kolobok.us/smiles/madhouse/dash2.gif]
    Simulator neu starten kann helfen...

    Moin,


    ich habe ein Problem mit folgendem Code:


    Im Gerät finde ich unter /mnt/sdcard/download/ die Datei Test.zip.
    Der Simulator sagt mir

    Zitat

    Given File Name /mnt/sdcard/Download/Test.zip couldn't be found!


    Die AVD hat als SD Card Support ein 'YES' mitbekommen, die folgenden Permissions sind gesetzt:

    HTML
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />


    Warum ist das so?
    Wie umgehe ich das?
    (Kann ja sein, dass im Gerät aus Gründen keine SD Card ist...)


    // Nachtrag
    Ich hatte zunächst versucht nach getDownloadCacheDirectory() zu schreiben, was bei keinem der Geräte funktionierte.
    /Cache ließ sich nicht bemalen.

    Hi Titus,


    leider bekomme ich das nur aus dem Kopf hin, da ich das Problem anderweitig umgangen bin.


    War:

    Java
    popupInfo info = new popupInfo();
    info.prepareTableAccordingToMap(downloadData, this);
    Dialog downloadInfo = new Dialog(info);
    downloadInfo.setContentView(R.layout.download_checker);
    downloadInfo.setTitle("Choose upgradable data");
    downloadInfo.show();


    Ist:

    Java
    final popupInfo downloadInfo = new popupInfo(this);
    downloadInfo.setContentView(R.layout.download_checker);
    downloadInfo.setTitle("Choose upgradable data");
    downloadInfo.prepareTableAccordingToMap(downloadData, this);
    downloadInfo.show();


    Ich habe also statt wie im ersten Anlauf eine Activity als Context zu übergeben einfach eine Subklasse von Dialog erstellt.
    Zwar hoffte ich zunächst, so etwas wie Delegating hinzubekommen (sprich: mein Dialog delegiert seine Arbeit an eine andere Klasse), aber da das nicht wollte mach ich das jetzt halt so. :)

    Und noch einmal diese Kategorie.


    Diesmal bekomme ich eine NullPointerException bei folgendem Code.

    Java
    TableLayout downloadListTable = (TableLayout)findViewById(R.id.downloadCheckerTableLayout);


    Die IDE erklärt mir brav:

    Zitat

    int com.example.app.R.id.downloadCheckerTableLayout = 2131296257 [0x7f090001]


    Die XML warnt mich zwar über böse statische Bezeichner™, aber das ist mir egal.


    Der Debugger stept durch:

    Zitat

    NullPointerException.<init>() line: 36
    popupInfo(Activity).findViewById(int) line: 1647
    popupInfo(Activity).getWindow() line: 747
    popupInfo(Activity).findViewById(int) line: 1647
    popupInfo.prepareTableAccordingToMap(Map) line: 19


    Wie finde ich hier die Ursache des Problems heraus?
    Welcher Pointer ist aus welchem Grunde null und wie umgehe ich das?


    Ein Try-Catch-Block wird mir nicht sonderlich helfen, da ich genau dieses TableLayout aus genau dieser XML im Weiteren benötige...
    Grundlage der Fingerübung war eine Mischung aus folgenden Quellen:
    http://en.androidwiki.com/wiki…dding_rows_to_TableLayout
    http://i.thiyagaraaj.com/artic…popupusinglayoutinandroid


    Da es bei einem unglaublich rudimentärem und essentiellem Bestandteil kracht, weiß ich grad nicht, was ich nun tun kann.


    // Nachtrag
    Offenbar wird onCreate() auf die Klasse nicht ausgeführt bzw. meine Prüfroutine wird zuvor aufgerufen. Ob das externe setContentView() gegriffen hat, kann ich grad nicht sehen. Vermutlich aber nicht, so dass es schlicht keinen ContentView gibt aus dem das View gezogen werden könnte. Und irgendwas Anderes müsste auch noch uninitialisiert sein, was es im Normalfall nicht sein dürfte. Na, mal weitersuchen.

    "The speed fo the device over ground" klingt für mich sehr nach einem Ignorieren der Höhenunterschiede.
    Aber auch bei distanceTo() (Location) schweigt sich die Dokumentation darüber aus, ob Höhenunterschiede einberechnet werden.


    'Die andere Seite' jedenfalls ignoriert Höhenunterschiede explizit und teilt dies auch mit, weshalb ich davon ausgehe, dass sie auch bei Android nicht berücksichtig werden.


    Be- bzw. widerlegende Quellen habe ich allerdings keine gefunden.