Beiträge von wasa71

    Stimmt,


    da war mal was. Als ich es in deinem Post gelesen hab, dämmerte es wieder. Habe ich vor langer Zeit mal mitbekommen, aber nie wirklich mit befasst, weil andere Sachen wichtiger waren...und jetzt wo es aktuell wird, war es weg.
    Ich dachte ich hätte nur die *.dpi Ordner zur Verfügung, die ja wirklich nicht dafür gedacht sind.
    Muss aber zugeben, dass ich da auch Hintergrundbilder reingetan hab und die vom System erkannt wurden. Stimme dir aber zu, ist nicht das richtige Vorgehen, auch wenn das Verhalten des Systems da dann auch noch einen in dem Irrglauben bestärkt.


    Danke dir Marco

    Hallo zusammen,


    ich möchte eine App für verschiedene Screen-Sizes und Densities basteln und hab da ein paar Fragezeichen über dem Kopf.


    Mir ist schon klar, dass ich verschiedene Layouts in den entsprechenden res/layout... Ordnern erstellen kann.
    Zusätzlich kann ich an sich auch in den jeweiligen res/drawable-... Ordnern entsprechende Images reintun, die dann Android selbst auswählt.


    WIe kann ich das aber nun kombinieren?


    Das heisst, wenn meine App z.B. normalScreen - medium density (320x480) unterstützen soll und auch largeScreen - medium density (480x854) , dann habe ich in der Regel auch verschiedene Images, bzw. in zwei verschiedenen Größen. Welche lege ich denn dann in den drawable-mdpi Ordner?


    Gibt es eine Möglichkeit mehrere drawable-mdpi Ordner zu haben, also z.B. einen für normal-screen und einen für large-screen?


    Und was, wenn ich darüberhinaus eben auch noch weitere Größen unterstützen will, z.B. Extra-Large-Screens in medium density und high density?


    Oder muss ich mich an die vorgegebenen Möglichkeiten halten und eventuell die App in mehreren Ausführungen basteln, hochladen und anbieten, z.B. eine nur für Smartphones und eine für Tablets?


    Vielleicht hab ich ja ein Brett vorm Kopf, aber irgendwie steige ich nicht dahinter wie ich das machen soll (wenn es denn überaupt geht).



    Danke im Voraus für jeden Tipp, der den Nebel lichtet,


    wasa71

    Lucas, du hast was gut bei mir.


    Aus irgendeinem Grund scheint das InfoWindow alles zu blockieren und der Aufruf muss tatsächlich in einem zweiten Thread zu erfolgen.
    Habs mit dem Handler-Vorschlag aus dem Post versucht und es hat direkt geklappt.
    Für den Fall, dass jemand das gleiche Problem haben sollte, hier der Code:



    Vielen Dank,


    wasa

    Hi Lucas,


    danke für deine Antwort, aber das Problem ist, dass die App wegen der Maps v2 nicht im Emulator läuft (App crasht bei Aufruf der Map). Deshalb teste ich sie immer auf meinem Smartphone.
    Hab dieses zwar auch per USB am Rechner angeschlossen, auch den USB-Debug Modus eingeschaltet und wähle es auch bei Eclipse aus, aber der Debugger zeigt in dem Fall keinen Fehler an.


    Die App crasht ja auch nicht, sondern friert ein und irgendwann erscheint der Dialog "Die Anwendung reagiert nicht. Möchten Sie sie schliessen? Warten - OK"


    ich weiss, dass es ohne jegliche Infos schwierig ist, was rauszubekommen (deshalb bin ich ja auch ratlos). Ich dachte vielmehr daran, ob jemand hier die selben, bzw. ähnliche Erfahrungen gemacht hat und mir helfen könnte.


    Gruß,


    wasa

    Hallo zusammen,


    ich habe da eine Anwendung mit TabGroups. In einer TabGroup befindet sich eine Map. Dabei benutze ich Maps v2.
    Es funktioniert eigentlich vorest alles. Ich zentriere die Karte, zoome, zeichne Marker, usw.


    Wenn ich nun auf einen Marker klicke, öffnet sich logischerweise ein InfoWindow. In diesem steht der Titel des Markers.


    Nun implementiere ich in der "OnCreate" einen "setOnInfoWindowClickListener".
    Hier der Code:



    Ziel ist es, eine neue Activity zu starten, wenn man in das InfoWindow klickt.
    Und das geschieht eben nicht. Vielmehr hängt sich die Anwendung auf. Das InfoWindow bleibt blau und ich kann nicht mehr tun.
    Wenn ich dagegen nicht die Activity starte, sondern nur den auskommentierten "Toast" anzeigen lasse, dann wird dieser auch angezeigt. Die Funktion wird also aufgerufen und auch ausgeführt. Wenn ich nun den Intent wieder reinpacke, und zwar in der Reihenfolge "Toast" - Intent, dann friert die App wieder ein und es wird der Toast auch nicht mehr angezeigt, obwohl er vor dem Aufruf der Activity steht.


    Wenn ich die neue Activity "direkt" starte (s. Code unten), dann fuktioniert es auch, aber die neue Activity startet eben nicht im Context, also nicht in der TabGroup und ich habe die Tabs nicht mehr zur Verfügung.
    Hier der entsprechende Code:


    Code
    supportMap.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
                @Override
                public void onInfoWindowClick(Marker marker) {
                	Intent intent = new Intent(GuideMap.this, ShowItemContent.class);
                    startActivity(intent);
                }
            });


    Hat vielleicht jemand eine Idee, was ich falsch mache? Ob es eventuell garnicht geht, was ich bezweifle, bzw. ob es nicht so geht, wie ich es versuche?


    Bin für jeden Vorschlag dankbar,


    wasa

    Hallo zusammen,


    habe hier ein Problem, bei dem ich nicht weiterkomme.


    Ich hab seit geraumer Zeit nichts mehr in Android gemacht. Nun habe ich gesehen, dass sich bei den Maps einiges getan hat, spricht Maps Api v2.
    Habe ein wenig damit rumgebastelt und habe mit dem KeytoolPlugin für Eclipse auch Keys generiert.
    Nun hatte ich das Gefühl mich ein wenig verrannt zu haben. Habe dann in einem schwachen Moment die generierten keystores gelöscht.


    Seitdem bekomme ich folgende Fehlermeldung bei jedem Project, das ich kompilieren will.


    "Error generating final archive: java.io.IOException: Keystore was tampered with, or password was incorrect MyTestApp Unknown Android Packaging Problem"


    Auch bei neuen leeren Projekten, die ja auch nichts mit Maps zu tun haben.


    Habe die keystores aus dem Papierkorb auch wiederhergestellt, aber ohne dass sich etwas am Sachverhalt ändert.


    Hat jemand eventuell eine Ahnung, was da geschehen ist und wie ich die ganze Sache wieder hinbiegen kann?


    Vielen Dank im Voraus,


    wasa71

    Hallo zusammen,


    wie im Titel beschrieben habe ich eine App mit einem Tabhost, der 5 Tabs besitzt. Jeder Tab ruft eine von 5 Activities auf.
    Nun hätte ich gerne, dass ein Progress Dilaog erscheint, wenn ein bestimmter Tab aufgerufen wird. Das ist Tab 3.


    Ehrlich gesagt, habe ich nun Schwierigkeiten überhaupt zu verstehen, wo ich den platzieren muss, da ja so gesehen, dieser Tab von jeder Activity aus aufgerufen werden kann.


    Muss ich in jeder Activity die onClick-events des Tabhosts auslesen, oder mache ich das irgendwie in der Klasse, in der ich den Tabhost erzeuge, oder....???


    Falls mir da jemand mit allgemeinen Infos oder auch Code weiterhelfen könnte, wäre ich dankbar,


    Gruß,


    wasa

    Mit einem RelativeLayout gehts natürlich auch. Fände ich sogar eleganter, weil man die Anordnung der einzelnen Komponenten besser arrangieren kann,
    z.b. android:layout_alignBottom="@+id/btn_1"
    android:layout_toLeftOf="@+id/btn_1"


    usw.

    Hi Sasch,


    also für deine Zwecke würde ich schon eher zur Lösung mit dem XML tendieren. Der Aufbau einer XML Datei ist schnell verständlich und das Integrieren der ganzen Sache in die Anwendung ist meiner Meinung nach auch einfacher. Datenbanken müssen extra installiert werden oder so (weiss da auch nicht so genau, muss ich zugeben).
    Ein geeignetes Tut habe ich jetzt auch nicht auf Anhieb. Bin auch auf Arbeit und hab auch nicht die Zeit zu schauen.
    Google einfach mal zuerst generell nach "Aufbau XML" und dann "Android XML Parsing" oder "Android open and read local XMl" o.ä. Wichtig bei letzterem ist, dass du nach Tuts schaust, die lokale XML Dateien öffnen und auslesen, da es auch die Möglichkeit gibt, es über Netz von nem Server zu laden. Das ist wohl bei dir nicht so ganz gegeben.
    Ich mach mich später mal schlau und schicke dir 1-2 links, wenn ich welche finde, wenn sonst niemand schneller ist.


    Gruß,


    wasa

    Hi Sasch,


    das wäre wirklich langwierig und unsinnig.
    Du musst dir eher überlegen, wie du diese 3 activities (und somit die 3 Listviews) für alles nutzen kannst.


    Auf gut deutsch, wie kann ich die selbe Liste für x-beliegiben Studienbereich, Studiengang, etc. nutzen.


    Fest steht, dass du alle Daten schon irgendwie speichern musst.
    Du kannst jetzt theoretisch nach dem Modell von Titus für alles ein Array erstellen, das wäre aber genau so langwierig und unsinnig (nicht falsch verstehen: Beim Beispiel von Titus war es schon sehr gut gewählt, damit du das Prinzip verstehst).
    Nun aber bräuchtest du Unmenegen an arrays: ein array Studienbereich1-Studiengang1, Studienbereich1-Studiengang2,.....Studienbereich2-Studiengang1, Studienbereich2-Studiengang2,.....usw. bis alle Studienbereiche, Studiengänge, Semester,..... etc durch wären. Also im Endeffekt fast wie bei deinem Gedanken mit den unzähligen Activities.


    Da gehen wir doch lieber einen Schritt weiter und speichern alles entweder in eine SQL-lite-Datenbank oder in eine XML-Datei. Du hast dann die Daten alle schön vorliegen, die du dann hervorholst, wie du sie brauchst, und füllst entsprechend der Auswahl dann die nächste Listview.
    z.B. füllst du die Listview der Activity1 mit allen Studienbereichen.
    - Wählt nun der User den Studienbereich SB1, so holst du alle Studiengänge für Studienbereich SB1 und packst sie in die Listview der Activity2.
    - Wählt der User hingegen in Activity1 den Studienbereich SB2, so holst du alle Studiengänge für Studienbereich SB2 und packst sie in die Listview der Activity2.
    Genauso für alle anderen Studienbereiche.
    So gehst du dann auch bei den Studiengängen - Semestern vor.
    Die Webview packst du dann auch in eine Activity, die je nach Auswahl, aus der Datenbank oder der XML-Datei den entsprechenden Inhalt bekommt, sei es ein Link oder HTML-Code, oder was auch immer.
    Das ganze bleibt in deinem Fall also bei 5 Activities, 4 mit jeweils einer Listview und 1 mit einer Webview. Alles wird je nach Auswahl und Bedarf mit den entsprechenden Daten gefüllt.


    Ich weiss nicht welche Vorkenntnisse du in den Bereichen Datenbanken und/oder XML-Dateien hast. Mach dich mal in den Bereichen schlau, wie beide aufgebaut sind, wie man Daten hineinbekommt und wie man daraus Daten ausliest und in eine Anwendung bekommt und verarbeitet. Überleg dir dann, womit du am besten klar kommst. Beide "Verfahren" haben ihre Vor- und Nachteile. Es gibt jedenfalls unzählige Tutorials und Bespiele im Netz zu beiden Bereichen. Spiel damit rum, um dich mit dem Thema vertraut zu machen, auch wenn sie im ersten Moment nicht sehr hilfreich erscheinen, oder für dein Projekt nicht geeignet. Du wirst aber sicherlich in vielen Punkten einen Aha-Effekt haben und in anderen ein großes Fragezeichen über dem Kopf. Deine Fragen werden jedenfalls so gemindert und konkretisiert.


    Mach dich außerdem noch schlau, wie du Parameter von einer Activity an eine andere übergeben kannst. Du musst ja der jeweils nächsten Activity immer mitteilen, welche Auswahl der User getroffen hat, und welcher Inhalt geladen werden sollte



    Hoffe, ich hab etwas Licht ins Dunkle bringen können, 8)
    (auch wenn ich mir vorstellen kann, dass du nun wie der Ochs vorm Berg stehst und nur Bahnhof verstehst....keine Angst, geh das einfach an und kämpf dich durch, nach dem Motto...wenn das andere verstehen und schaffen, dann ich auch ;) )


    Gruß,


    wasa

    Hallo zusammen,


    wie der Titel schon sagt, würde ich gerne meine App in die Liste der ongoing apps eintragen, wenn sie gestartet wird. Das tut sie nämlich nicht von selbst (wie ich anfangs angenommen habe).


    Hintergrund ist ne kleine Web-audio-stream app, die einmal gestartet, auch dann laufen soll, wenn man z.b. seine e-mails liest, usw.
    Das funzt ja auch halbswegs, also die App, bzw. der Stream läuft ja auch weiter, wenn ich ne andere app öffne, aber ich bekomme sie nicht mehr aufgerufen. Kann somit den Stream auch nicht mehr stoppen. Wenn ich sie per icon neustarte öffnet logischerweise eine neue Instanz der app und ich höre den stream 2x. Also will ich sie in die Liste der ongoing-apps eintragen, um die selbe Instanz wieder aufrufen zu können.



    Außerdem passiert es auch, dass die App manchmal auch automatisch gestoppt wird. Das passiert, wohl um den Speicher freizugeben, weil es immer passiert, wenn ich zu speicherintensiven und aufwendigen apps wechsle.
    Gibt es da vielleicht auch eine Möglichkeit dem System mitzuteilen "lass meine app laufen und schließe sie nicht", oder passiert das sogar "einfach" indem ich sie in die "ongoing-apps" eintrage?


    Falss mir da jemand helfen könnte, wäre ich überaus dankbar. Würde mir ja auch erstmal reichen, falls mir jemand sagen könnte, ob ich gedanklich auf dem richtigen Weg bin, um das Problem zu lösen.



    Gruß,


    wasa

    Hallo zusammen,


    ich befasse mich grad mich gestures und co. und hab da ein Problem mit dem onLongPress Event.
    Ich bin soweit, dass es zwar funzt, aber nur ich Verbindung mit einer View. Also z.B. nur innerhalb des "Rahmens" einer ImageView, TextView, etc.
    Das mache ich in etwa so:


    Nun hätte ich aber gerne, dass das Event ausgelöst wird, wenn man einfach irgendwo auf dem Screen lange drückt und nicht nur innerhalb der ImageView.


    Weiss vielleicht jemand, ob das überhaupt geht?
    Falls ja, kann mir da jemand einen Tipp geben wie?



    Danke im Voraus,


    wasa

    Hallo zusammen,


    wie der Titel schon sagt habe ich da eine Frage im Zusammenhang mit einer ListView und dem LayoutInflater.
    Und zwar habe ich Activity1, in welcher ich über die activity1.xml eine horizontale Bar erzeuge. Also ein vertikales LinearLayout mit nem horizontalem Linearlayout und darin ImageButtons.
    Wenn man jetzt auf einem bestimmten ImageButton klickt soll Activity2 (ListActivity) gestartet werden. Activity2 soll oben ebenfalls die Bar enthalten. Diese füge ich über activity2.xml auch ein.
    Da ich aber für die ListView von Activitz2, bzw. für die ListItems, einen LayoutInflator benutze (list_item.xml) wird erscheint die Bar nicht über der List.


    (Wenn ich wiederum den Code für die Bar in List_item.xml einfüge, dann
    erscheint die Bar in jeder Row der ListView. Das erscheint mir ja auch
    logisch)


    Sollte eigentlich nicht nur das Layout der Rows der ListView "inflatet" werden oder hab ich da nen Denkfehler und es wird grundsätzlich das komplette Layout der Activity ersetzt?


    Vielleicht benutze ich den Befehl ja auch nicht richtig.
    Der entsprechende Codesnippsel ist folgender:




    public View getView(int position, View convertView, ViewGroup parent) {






    LayoutInflater inflater=getLayoutInflater();



    View row=inflater.inflate(R.layout.list_item, parent, false);
    .....


    Ich hoffe, ich hab mein Problem halbwegs verstädlich beschrieben und jemand kann mir helfen.


    Danke im Voraus,


    wasa

    Erstmal danke für eure Antworten.


    Matze: Hab schon nen Denkanstoss bekommen. Weiß zumindest, in welche Richtung das ganze geht.


    Zu den Daten: Ich bekomme meine Daten aus ner Datenbank in HTML-Format, aber ich denke mal das beste wird sein, ich parse dann das HTML einfach in TextViews, die in ner ListView liegen, und welche ich...wie Matze meinte....dynamisch generiere. Macht wohl am meisten Sinn.


    Ich markiere den Thread mal als erledigt, aber wer noch ne Idee hat, kann sie ja gerne äußern.


    Vielen Dank nochmal.

    Hallo zusammen,


    hab da mal ne eher allgemeine Frage, die bestimmt einer beantworten kann.
    Wenn man die App eines Nachrichtenportals öffnet und z.b. auf Sportnews geht, dann findet man in der Regel eine Liste mit 5 oder 10 Nachrichten in Kurzform (evtl. noch mit Bildchen), die man anwählen kann und es öffnet sich dann die gewählte Nachricht.


    Ich hab jetzt eher das Problem zu verstehen, aus was für Komponenten so ne Nachrichtenübersicht besteht. Ist das jetzt ne WebView mit ner Liste drin, oder ist das eher ne ListView mit WebViews als Elemente, usw.? Jedes Element muss ja auch anwählbar sein, deshalb denk ich mal weniger, dass es sich um externe Webseiten handelt, die einfach reingeladen werden, oder?


    Wie würdet Ihr denn da vorgehen?


    Ich denke es gibt bestimmt verschiedene Lösungen, aber bestimmt machen nicht alle Sinn.


    Vielleicht kann mir ja da einer das Brett vom Kopf kloppen.


    Gruß,


    wasa

    Hallo,


    ich probiere seit Tagen es hin zu bekommen eine Art Zeitungsartikel darzustellen. Genauer soll ein Bild dargestellt werden, z.B. rechts oben, das vom Text umschlossen wird. Vielleicht seh ich ja den Wald vor lauter Bäumen nicht, aber komme nicht dahinter, welches Layout ich da nehmen könnte, um die TextView und die ImageView dementsprechend anpassen, bzw. darstellen zu können. Die einzige Möglichkeit, die sich für mich ergibt, ist ein TableLayout mit 2 Spalten und dann den Text entsprechend der Höhe des Bildes abzuschneiden und den Rest dann in die nöchste TableRow einzufügen, ggbf. mit column span.
    Weiss da vielleicht jemand noch eine andere Lösung, die das automatisch anpasst?


    Vielen Dank im Voraus!


    wasa71