Beiträge von fabi1991

    Hi,
    ich bin gerade dabei eine Server-Client App zu schreiben.
    Bisher habe ich es so gelöst, dass der Server permanent im Accept hängt, der Client, wenn er was hat, zum Server connected, ihm was schickt und den Socket wieder schließt.
    Der Server blockiert im accept, sobald der Client connected, kommt der in.readLine() und socket.close();
    anschließend erstellt er einen neuen Socket auf den der Client connecten kann.
    Ds funktioniert soweit auch.
    Doch wenn ich jetzt was vom Server zum Client senden will, muss das entweder "abgesprochen" sein oder es geht halt nicht.
    Jedoch schaffe ich es nciht den Socket "offen" zu halten.
    Im Async-Task wird eine Verbindung aufgebaut, über

    Code
    in = new BufferedReader(new InputStreamReader(client.getInputStream()));
    		   out = new PrintWriter(client.getOutputStream(),true);


    kann ich dann senden oder empfangen.
    Wenn ich nun den Socket im Postexecute übergeben will, ist er nur lokal gültig, ich möchte aber global damit arbeiten.
    Wenn ich allerdings eine global deklarierte Variable verwende, muss sie final sein.
    Das ist auch alles logisch, aber wie zur Hölle bekomme ich nun diese "in" bzw "out" auch in anderen Threads benutzbar?


    Ich hoffe das klingt nicht alles zu wirr und jmd kann damit was anfangen :)
    Grüße

    Hi,
    ich bin grad dabei ein kleines Spiel zu basteln. Dafür wollte ich eine Bitmap als hintergrund nehmen und eine andere als icon für ein paar Dinge, die angezeigt werden sollen.
    Die Kästchen, die nachher von den Bitmaps belegt sein sollen, sind 25px breit und 10 px hoch. Mit irfan view hab ich mir eine png erstellt, diese hab ich per
    brickbmp=BitmapFactory.decodeResource(getResources(), R.drawable.brick); und im
    public void onDraw(Canvas canvas){
    canvas.drawBitmap(brickbmp, brick.x,brick.y,paint);
    }
    angezeigt.
    Nur passen die jetzt vorn und hinten nicht, sind viel zu groß. Dabei sind diese png-dateien 100% 10*25px groß. mit einer Funktion habe ich nun versucht die größe anzupassen


    passt wunderbar. doch wieso erst jetzt und nicht schon vorher?




    mein 2. problem ist, dass nun absolut die Performance in die Knie geht. Kästchen erstellen geht, doch sobald da bitmaps rein sollen, geht alles krachen.
    Ebenso wenn ich !einmalig! am anfang meiner View Klasse mit

    Code
    this.setBackgroundDrawable(
        			    	new BitmapDrawable(getContext().getResources(), brickbmp));

    ein Hintergrundbild setze, geht die performance ein.


    ich führe rein theoretisch 100 mal/sek invalidate() aus, da ich ein sich bewegendes Objekt habe. Doch aus Leistungsgründen komme ich nicht an die Zahl ran.
    Da in meinem "onDraw" zimelich viel drin steht, wird das alles kritisch, wenn das so oft aufgerufen wird, da 90% eh nicht verändert wird, sondern egentlich nur ein Objekt. D.h. theoretisch müsste ich nur das sich bewegende Objekt immer neu Zeichnen und das alte Objekt wieder schwärzen.
    Kann ich irgendwas neu zeichnen, ohne onDraw neu aufzurufen?
    Grüße

    Hi,
    ich bastel grad an einem kleinen Spiel bzw bin noch ganz am Anfang davon.
    Da aber meine Frage eher eine Anfängerfrage ist, hab ich diese Rubrik ausgewählt.


    Folgendes,
    ich hab eine Klasse "Ball " erstellt
    diese enthält folgendes:
    float x, y, rx, ry;
    x,y sind die Koordinaten des Balls
    rx, ry die Richtung, d.h. die werden auf die Koordinaten aufaddiert und bilden die neuen Koordinaten.
    jetzt habe ich in public void onDraw(Canvas canvas) drinstehen, dass der Ball ausgegeben wird und danach die Richtung auf die Koordinaten addiert wird.
    in
    public boolean onTouch(View view, MotionEvent event)
    habe ich
    invalidate();
    stehen. d.h. bei jedem Touch bewegt sich der Ball.
    ich möchte aber dass sich der Ball von allein bewegt.
    Alles in eine Schleife reinpacken war meine erste Idee, doch dann hab ich absolut keine Möglichkeit mehr, eingaben zu machen.


    in java gibts ja eine main() funktion, die immer wieder abgearbeitet wird, hier gibts die meines Wissens nach nicht. was verwende ich stattdessen?
    Grüße

    Hi,
    in letzter Zeit funktioniert es immer wieder, dass meine App, die eigentlich wunderbar funktioniert, nach dem Verschieben eines einzigen Buttons um 2 mm nach rechts/links/egal nicht mehr startet.
    nach STRG-Z(wenn der button wieder an seiner ursprünglichen position ist) geht es wieder.
    Das ist total nervig, ich will grad mein Layout erstellen, aber jegliche Veränderung an der Positionierung lässt meine App abschmieren.
    Auch das Einfügen neuer Layouts führt zum Abturz, sobald da ein neuer Button drin ist.
    Ist das ein bekanntes Problem ?
    Grüße

    Hi,
    ich möchte eine Benutzereingabe erstellen, die aber nur unter bestimmten vorraussetzungen sichtbar ist, dazu habe ich 3 Lösungansätze:
    1. Sowas wie Toast, nur eben mit Texteingabe, gibts das?
    2.Kann man diese EditTextfelder irgendwie ausblenden, wenn sie nicht gebraucht werden?
    3.Kann man über die gesamte App irgendwie eine 2. "ebene" legen, in der eben ein Eingabeformular ist, und die nur sichtbar wird, wenn der benutzer eben etwas eingeben soll?!


    Grüße

    jo danke, ich habs jetzt irgendwie schon hinbekommen.
    wenn du willst kann ich dir ja mal den quelltext zuschicken und du kannst dir die Früchte unserer Arbeit anschauen :)
    allerdings hab ich noch ein Problem.
    wenn ich bei nem motorola(kA welches modell) mit android 2.1(das projekt ist auf android 2.1 gemacht). den spinner öffne, werden mir nur weiße einträge angezeigt und erst beim klick auf diese, erscheint der Eintrag, solang man draufklickt. lässt man los, verschwindert er wieder..-.-
    mit setdropdownDingens hab ichs hinbekommen. Die EInträge haben jetzt auch nen schönen grünen knubbel zum selektieren daneben.
    aber ich hab einzelne einträge, wie z.b. Fakultät informatik.
    das soll zur abgrenzung/überschrift der einzelnen studiengänge dienen nd selber nicht auswählbar sein.
    bis jetzt kann man es auswählen, aber dann gibts nur die seminargruppe "-"
    Geht das irgendwelche items in dem string-array als nicht auswählbar zu definieren bzw im spinner noch was dickes nicht auswählbares reinzuladen?


    Ich denke danach wars das vorerst mit Fragen :)

    so, da bin ich wieder :)
    in meiner hauptklasse habe ich-wie du mir sagtest- eine weitere klasse public class Raum_SelectedListener implements OnItemSelectedListener {
    erstellt. darin sind die ganzen if-anweisungen, was passiert wenn welche auswahl gestroffen wird (adapter soll erstellt werden und 2. spinner den adapter zugewiesen bekommen) abgespeckt sieht der code so aus:


    wobei xyz ein array ist, das die möglichen seminargruppen enthält.
    in R.java ist im abschnitt array dieser xyz eintrag auch zu finden.


    der Fehler, wenn ich mit der Maus über den rot unterwellten Text(die komplette zeile mit dem adapter) fahre, ist:
    The constructor ArrayAdapter(context, int, view) is undefined.
    ein Vorschlag von Eclipse ist (List) davorzuschreiben
    Danach gibts auch keine Fehler mehr, wähle ich allerdings den entsprechenden Spinnereintrag, schmiert die App ab.
    Laut der Fehlermeldung muss das 3. argument ja ein View sein. findViewById liefert doch aber einen View zurück, wieso will er das dann zu "List" casten?
    deklariere ich allerdings im Quelltext selber final String[] xyz={"...", ".."}; und nehme nur xyz als 3. argument, gibts keine Fehler -.-
    Hilfe bitte :)


    ps: ich musste grad schmunzeln als ich meinen 1. Foreneintrag hier gelesen habe:

    Zitat

    Hi Leute,
    ich möchte mich garnicht groß mit der Android Entwicklung beschäftigen,

    Liebe Grüße


    //edit:
    ich hab gerade mal das findViewById weggelassen. nun gibts keine Fehler, die App schmiert auch nicht ab, aber der 2. Spinner ist einfach leer, sobald ich den entsprechenden Eintrag im 1. auswähle :(
    Und bei g.getInt() geht er mit, aber bei p.putInt() schlägt er mir einen Cast zu (Object) vor -.-

    ich hab das jetzt so gelöst, dass automatisch beim start die CheckBox gechecked ist und die gespeicherten daten nimmt, sobald man etwas anderes auswählt, verschwindet das Häkchen und das ausgewählte wird genommen. Sicherlich nicht die edelste Lösung, aber funktioniert.
    Nun hab ich eigentlich nur noch das Problem, dass ichs einfach nicht hinbekomme die Spinner-items per xmp reinzubekommen. createFromResource will er einfach nicht annehmen-.-
    lg

    woah danke für die Mühe :)


    Ich wollte die 2. Einträge eigentlich alle über xml machen, aber wenn ich in die ganzen if-anweisungen statt ArrayAdapter ...=new ArrayAdapter(etc)
    ArrayAdapter.createFromResource nehme, bekomme ich einen Fehler. Irgendwie war es mir auch nicht möglich die außerhalb der klasse zu deklarieren-.-


    Nun friemel ich noch bisschen rum. Wäre kuhl wenn du mir noch die eine Frage beantworten könntest.


    Eh ich hab mit nem Code Schnipsel gerechnet^^
    Danke auf jeden Fall für die Mühe!!!!!



    //edit und aus 1 werden 2^^


    wenn ich das jetzt noch hinbekommen würde, dass immer, sobald ich auf den "go-button" drück, die eingetragenen werte (also studiengang und seminargruppe) irgendwie gespeichert werden, sodass ich beim nächsten start der app diese direkt als standard verwenden kann, wäre das noch saustark :)


    ich habs jetzt hinbekommen, dass die daten in preferences gespeichert werden. allerdings als string.
    nun muss ich jeden möglichen wert(string) abprüfen und mit spinner.setSelection(int) setzen.
    da es ja keine switch-case anweisungen für strings gibt, muss ich das alles in if-schleifen machen.
    bei 20 studiengängen a la 6 seminargruppen sind das satte 180 if-anweisungen für den spinner2 und 20 für spinner 1
    geht das irgendwie professioneller?
    Ich überlege gerade das mit ner Checkbox zu machen. wenn die angeklickt ist, werden die gespeicherten Daten geladen....


    aber geht das nicht professioneller? xD



    liebste grüße

    Ich glaube ich hab das alles sehr verwirrend dargestellt, hier nochmal die entwirrte Fassung:
    Ich möchte, dass wenn jemand beim Spinner s1 etwas auswählt, der spinner s2 aktualisiert wird.
    wie man den 2. spinner verändert weiß ich, aber ich seh bei dem Listener nicht durch.
    Kann mit bitte jemand ein Code schnipsel posten, das nach der auswahl von s1 code ausführt.
    so nach dem motto:
    onItemSelected(s1){
    CODE#,
    }
    danke :)

    Hi Leute,
    ich möchte mich garnicht groß mit der Android Entwicklung beschäftigen, das habe ich heute schon 6 Stunden lang getan.
    unsere Uni bietet eine .jar an, in der der jeweilige Student seine Daten eintragen kann und dann seinen aktuellen Stundenplan vor sich sieht und was er so demnächst zu tun hab.
    Leider bekomm ichs nicht zum laufen und diverse Konvertierungsprogramme bzw java runtime fangen lediglich an sinnlose sms zu verschicken-.-


    Da ich zu faul bin jedesmal im Browser meines Handys auszuwählen welche Seminargruppe ich bin etc und dann den Stundenplan angezeigt zu bekommen, habe ich mir den Stundenplan als Lesezeichen gespeichert, wobei ich jede Woche die wochennummer aktualisieren muss.
    Der Link ist so aufgebaut:
    http://uniwebseite.de/stundenp…eminargruppe=abc&woche=54
    Nun muss ich halt jede Woche das Lesezeichen aktualisieren....


    Da kam mir die Idee, dass es doch nicht so schwer sein kann eine App zu schreiben, in der der Benutzer die aktuelle woche eingibt(eventuell sogar immer die letzte eingabe gespeichert) und pre klick auf go der link aufgerufen wird.
    z.b. wenn ich eine 54 eingebe der Link von oben im Browser aufgerufen wird und mir der Stundenplan angezeigt.


    In java bin ich relativ fit, aber das hat mich dann doch überfordert, zumal ich nicht so viel zeit reinstecken möchte das alles zu lernen, wenn ichs eh nicht brauche, außer halt dafür..


    Nun meine Frage:
    Ist das einfach zu realisieren und wenn ja, wäre jemand so lieb mir passenden Code zu posten? das design bekomm ich dann selber auf die Reihe. lediglich die Benutzereingabe und das Aufrufen der Seite per klick auf nen Button.
    Für einen Profi ist das sicherlich in 5 min erledigt :)
    Danke schonmal
    Liebe Grüße