Beiträge von Pommes9485

    Guten Tag,


    ich sitze jetzt schon seit mehreren Tagen an diesem Problem und denke, dass ich da irgendwo einen grundlegenden Verständnis Fehler habe. Folgendes Szenario:
    Ich habe eine Activity, mit 3 Fragments, welche durch einen FragmentStatePagerAdapter verwaltet werden. Wenn ich in Fragment 3 auf ein Item in der Liste klicke, wird eine Methode der Activity aufgerufen, welche zu Fragment 2 wechselt und dort einen Dialog öffnet, welcher dann abschließend ein erstelltes Objekt in Fragment 2 anzeigt.
    Mein Problem ist nun, dass getContext(), getActivity(), getView() alle null wiedergeben, obwohl ich ja eigentlich schon auf dem Fragment sein müsste.
    Auch das Speichern der Activity bzw. des Contextes in onAttach bzw. onCreateView ist dann null. Wenn ich die Methode direkt aus dem Fragment aufrufe, funktioniert alles.


    Nun folgt der Code, ich habe probiert, es so zu vereinfachen wie möglich, aber das Projekt ist schon relativ umfangreich.


    MainActivity:


    AktuelleBestellungFragment, das Fragment, welches den Dialog enthält:

    Wenn in Fragment 3 auf ein Item geklickt wird, passiert folgendes:


    Code
    ((MainActivity)getActivity()).openDialog(MainActivity.AKTUELLE_BESTELLEUNG,artikel_lieferant[position].getId()+"" );

    Ich hoffe, ich habe mich verständlich ausgedrückt.


    Wie sollte man so etwas angehen? Bzw. warum sind die Abfragen überhaupt null, wenn doch in getItem eine neue Instanz erstellt wird, falls diese nicht mehr vorhanden ist?


    Vielen Dank schon mal für die Hilfe, ich stecke hier echt fest ||

    Zitat

    Also um es nicht falsch zu verstehen, zum Anzeigen lassen benutz ich immer String.valueOf, egal ob es ein Double, Integer oder Float ist?

    Im Prinzip schon, ja.


    Wenn du einen String hat, der eine Zahl repräsentierst und du damit wieder rechnen möchtest, dann brauchst du einen Integer. Und dafür könntest du dann schreiben:


    Java
    String meine_zahl_als_string = "33";
    int meine_zahl_als_int = Integer.valueOf(meine_zahl_als_string);

    Allerdings gibt es noch einen Unterschied zwischen "Integer" und "int". Das würde jetzt aber den Rahmen sprengen. In den meisten Fällen würdest du vermutlich Integer.parseInt(String) benutzen ;)

    Integer.valueOf gibt dir einen Integer wieder und String.valueOf gibt dir einen String wieder. Integer sind nur Zahlen, String sind Zahlen und Buchstaben und co. Da du hier Text anzeigen möchtest, ist String.valueOf nötig, oder eben " "" + zahlen1".


    Das liegt daran, dass du ja noch nichts machst, wenn die Zahl doppelt ist. Es wird überprüft, dafür ist die if-Abfrage drinne. Aber nichts darauf hin dagegen getan. Ich denke eine neue Zahl für die doppelte zu wählen ist am sinnvollsten. Ich würde das ganze aber, ähnlich wie Champs noch in extra Methoden auslagern. Dann kannst du das überprüfen danach direkt noch mal machen, ohne dafür doppelten Code zu haben.

    Dann würde ich mir den Logcat Bericht einmal anschauen, das ist sehr wichtig, auch wenn dieser Fehler relativ einfach ist.


    TextView.setText() nimmt verschiedene Argumente. Das einfachste ist ein String, dieser wird dann direkt angezeigt. Ansonsten geht auch ein int-Wert, welcher meistens eine Referenz auf einen String ist. Zum Beispiel "R.string.teststring". Das wäre dann aber extra in der xml Datei festgelegt.


    Integer.valueOf() gibt dir den Integer Wert des Parameters wieder. Das möchtest du aber nicht. Also am Besten einfach


    Code
    Lotto_Zahl_1.setText(""+(Zahl1));

    benutzen.

    Das funktioniert fast. Zwar muss ich die Tastatur jetzt 2mal schließen (1mal Pfeil nach unten, dann quasi erst zurück), aber immerhin verschwindet die Leiste so.


    Allerdings ist das gleiche Problem noch bei Dialogen. Ich habe schon einen Dismiss Listener eingebaut, aber irgendetwas läuft da noch nicht.
    Gibt es denn keine saubere Lösung? Das erscheint mir irgendwie nicht so gewollt :D


    EDIT:
    So, das klappt nun auch. Ich musste die das erneute setzen der Flags ein wenig verzögern. Allerdings ist irgendwas noch nicht ganz richtig. Wenn ich jetzt die Navigation Bar zeigen will (zum Beispiel durch das Wischen von unten nach oben am unteren Rand), erscheint die Bar komplett Schwarz und verschwindet auch nicht wieder.

    Ich würde es in einer Array machen, dann kannst du durch die einzelnen Zahlen in einer Schleife durchgehen und dabei jede Zahl mit jeder anderen vergleichen. Am Einfachsten wäre wohl etwas ähnliches wie dieses hier:



    Java
    int[] zahlen = new int[7];
    //...zahlen reinschreiben, am besten auch direkt in einer Schleife
    //Abfrage ob gleiche vorkommen
    for(int i=0; i<=zahlen.length; i++)
    {
        for(int a=i+1; a<=zahlen.length;a++)
           if(zahlen[i]==zahlen[a])
               //zahlen[i] bzw. zahlen[a] sind gleich 
    }

    Zur Erklärung:
    Die erste Schleife geht einfach nur die Zahlen nacheinander durch. Für jede Zahl wird aber eine weitere Schleife gestartet. Diese startet nicht bei 0, sondern bei i+1, daher werden bereits verglichene Zahlen nicht noch einmal verglichen und die Zahl wird nicht mit sich selber verglichen. Sollte so stimmen ;)

    Hallo,


    ich entwickle eine App, welche hinterher nur auf Tablets genutzt wird und auch quasi nur benutzt wird, für einen anderen Zweck ist das Tablet nicht da. Durch Android 5 und dem Device Owner habe ich diesen Effekt auch schon erzielt.
    Jetzt habe ich jedoch noch folgendes Problem. Normalerweise sieht man nur die App, keine Navigation/Notification Bar. Wenn ich in ein EditText klicke, erscheint die Tastatur mit der Navigation Bar. Bisher hier hin kein Problem, stört ja nicht. Wenn ich jedoch die Tastatur schließe (über den Zurück Pfeil in der Bar), bleibt die Navigation Bar erhalten und ist auch nicht mehr Transparent. Erst nach beenden der Activity und erneuten öffnen dieser, verschwindet die Bar wieder. Woran kann das liegen?


    Bisher benutze ich 2 Methoden, um den Fullscreen Mode zu erreichen, in beiden Activitys jeweils in onResume und in onCreate:


    Vermutlich ergänzen sich die beiden Methoden, aber das ist die Lösung, die ich mir zusammengesucht habe, leider erzielt sie aber immer noch nicht DEN Erfolg.
    Das Testgerät läuft mit Android 5.1.1. .

    Guten Tag,


    ich habe hier ein 14 Zoll Tablet mit einer Auflösung von 1920*1080 stehen, für das ich unter anderem eine Gallerie erstellen möchte. Dabei habe ich bereits die ViewPager und das FragmentStatePagerAdapter für mich entdeckt. Allerdings stehe ich noch vor dem Problem, dass die Bilder beim Swipen etwas laggen. Es sieht einfach nicht smooth aus. In der Gallery App des Tablets funktioniert das aber, daher müsste es ja für mich auch machbar sein. Ich habe schon einige Performance Optimierungen mitgemacht, welche aber nicht viel geholfen haben (wenn überhaupt). Hier also der Code:


    Der View pro Seite:


    Das Layout mit dem Pager:



    Ich habe auch den inSampleSize Wert schon mal vergrößert (bis 16), was aber von Swipen her keinen Unterschied gemacht hat.
    Habt ihr noch Ideen? Ist da ein totaler Performance Killer drinne?`
    Hardware Acceleration ist bereits eingeschaltet.

    Guten Tag,


    ich entwickle momentan ein App welche als einzige App laufen soll, das Tablet steht dann hinterher wo fest eingebaut.


    Der Ausschalter ist nicht erreichbar, das OS ist 4.4.2 Android Vanilla rooted.


    Bisher habe ich bereits folgendes herausgefunden:
    Kiosk Modus soll den Homescreen ersetzen. Vollbildmodus um die Navbar und die Benachrichtigungsleiste auszublenden.
    Aber die Einstellungen können immer noch erreicht werden, indem von oben nach unten geswipt wird und dann über die Quicksettings Einstellungen aufgerufen werden.
    Außerdem möchte ich die Tastatur benutzen, aber auch über diese können die Eingabeeinstellungen geöffnet werden.


    Gibt es ein Gesamtpacket, um das ganze erreichen, oder muss ich an jeder Baustelle einzeln ansetzen?
    Ich werde doch nicht der Erste sein, der das machen möchte, oder?

    Die Tatsache, dass der Service nur dann gestartet wird, wenn ein Update benötigt wird und danach wieder beendet wird. Aber anscheinend reichen 10 Sekunden Abstand nicht aus, um GPS abzuschalten, einmal gefunden hält es unabhängig vom Service den Dienst aufrecht.


    Ich denke dann hat sich die Frage erledigt.

    Guten Tag,


    ich starte alle 10 Sekunden einen Service, welcher dann die Position holt und hochlädt.
    Momemtan mache ich es nur über den Network_Provider, allerdings würde ich auch gerne die Alternative über GPS bieten. Das Problem ist jetzt, dass wenn ich GPS updates ohne regelmäßige Updates mache (also ohne requestLocationUpdates), dass GPS dann jedesmal wieder neu gesucht werden muss, oder?
    Kann ich das irgendwie umgehen?
    Den Service dauerhaft laufen zu lassen ist nicht mein Ziel, wäre also über Möglichkeiten sehr glücklich.

    Weil ich sicher stellen muss, dass diese Updates immer weiter laufen, egal ob die App beendet wird oder nicht, und dies schien mir der einfachste Weg dafür zu sein.
    Und überall wird geschrieben, man sollte anstatt einen länger Laufenden Service zu erstellen, lieber viele kleine machen, welche laufen und dann fertig sind...:D


    Habe SQLite jetzt implementiert, teste es gleich mal...

    Guten Tag,


    ich hoffe ja auf eine möglichst einfache Antwort^^


    Habe folgendes Szenario:


    Mit einem Service wird alle X Minuten um eine Bestätigung gebeten. Alle X+1 Minuten schaue ich dann, ob diese hinterlegt wurde.


    Anderes Szenario:
    Der Service ruft GPS Daten ab und lädt diese hoch. Nun sollen diese Daten aber auch in der App dargestellt werden. Wenn diese läuft ist es kein Problem, dann übergebe ich die Daten einfach per Binder. Aber wenn der Service läuft, die App beendet wird und dann 10 Minuten später die App geöffnet wird, sollen diese Daten auch angezeigt werden.


    Der einzige Weg, welcher mir jetzt einfallen würde, wäre, dass ganze in eine Datei zu speichern und dann beim Aufrufen wieder zu lesen.


    Oder kann ich das ganze auch in eine Statische Klasse speichern?
    Was passiert mit dieser, wenn die App beendet wird?

    Guten Tag,


    ich bin mir ziemlich sicher, ich übersehe hier gerade etwas, weiß allerdings nicht, was genau.


    Ich benutze eine von AsyncTask erbende Klasse um die einen Counter anzuzeigen, welcher sich alle 500ms aktualisiert.
    Das läuft auch, wenn ich jedoch die App minimiere und dann aus den Tasks neustarte, steht dort wieder der Standart Text und der AsyncTask scheint nicht mehr zu laufen. Auch ein

    Java
    new ShowCounter().execute("");

    in der überschriebenen onResume Methode hilft hier nicht.


    Habt ihr eine Ahnung, warum nicht?