weder hast du den layoutwechsel gezeigt, noch hast du eine frage gestellt...
Und vorallem hast du mit keiner silbe erwähnt, was du eigentlich tun möchtest.
weder hast du den layoutwechsel gezeigt, noch hast du eine frage gestellt...
Und vorallem hast du mit keiner silbe erwähnt, was du eigentlich tun möchtest.
Ich sprach ja von den Rechenvorgängen im hintergrund. Das ist ein spezieller Fall der genau für dein Use-Case angepasst ist. Aber nicht viele Leute wollen genau diese Berechnungen und die Ergebnisse die du von einer Zeitmanagementapp verlangst. Ich meinte mit dein Fall ist speziell nicht, dass das Gleitzeitmodell speziell ist, sondern das was du von der App verlangst. Ich arbeite auch nach diesem Modell.
Ich verstehe schon was du machen möchtest, aber z.b. Pause errechnen ist auch wieder nicht gut. Was ist denn mit den leuten die mal länger und mal kürzer pause machen. Theoretisch bräuchtest du für dein Gedankenmodell eine App, bei der du dynamisch Startzeit, Pausenzeit, Endzeit editieren kannst und alle anderen Werte werden dementsprechend berechnet.
Beispiel:
Du fängst 7:00 Uhr an und denkst dir so "ich mach heute nur 30min pause und möchte 8h arbeiten". Die App berechnet dir dann deine Endzeit. In deiner Pause fällt dir aber ein, dass du noch ein Paket von der Post holen musst und so weitet sich deine Pause auf 1,5h aus. Dann editierst du deine Pausenzeit und die Endzeit wird berechnet.
Aber du könntest am Anfang auch sagen "ich darf heute nicht länger als bis 15:30 arbeiten" und die App berechnet dir dann, dass du nur 30min Pause machen darfst.
Es kann auch der Fall eintreten dass du keine Pause machst, oder Überstunden absetzt und nur 6h arbeitest. Daher bedarf es an dieser Stelle einem sehr dynamischen System. Ich mag aber immernoch nicht glauben das es sowas noch nicht gibt in der Android Welt. Im Playstore gibt es einfach so viele Apps, da muss doch was brauchbares dabei sein
wie umständlich?! Trag doch einfach beginn und ende der arbeitszeit ein + länge der pause und lass dir deine wöchentliche arbeitszeit anzeigen, dann weißt du doch sofort wieviel du die woche länger gearbeitet hast. Was du konkret möchtest, ist ein sehr spezieller spezialfall der eine spezielle app erfordert. Ich glaube nicht das der Threadersteller darauf aus war eine solche app zu programmieren
Ich muss Marco da widersprechen, solang die Minifizierung nicht aktiviert ist, wird nicht nur das gepackt was gebraucht wird, sondern die komplette Dependency. Zuminidest ist mir keine Quelle bekannt, die das Gegenteil schreibt. Du kannst ja einfach mal testen ob Das Bauen mit Proguard nun funktioniert oder nicht.
Egal wie aufwändig, dass ist eben der Sinn dieser Plattform. Wer hier nur werben möchte, ist fehl am Platz.
Hier kann man seine Projekte vorstellen, aber das ist nicht wirklich als werbung gedacht. Da das eine Entwicklercommunity ist, wäre eine entwicklungslastige Vorstellung sehr toll
Sieht aber unspannend und auch viel zu kompliziert aus. Je mehr man eintippen/auswählen muss, desto mehr Fehler können passieren. Bei einer Arbeitszeiterfassung soll genau das aber vermieden werden. Vor Allem kann es eigentlich nicht Sinn der Sache sein, dass man 5 Minuten Arbeitszeit für die Erfassung aufwendet.
Also start, endzeit und pause eintragen erachte ich nun nicht gerade als "zuviel eintippen". Das muss man halt auch irgendwie eingeben, sonst würde das tool ja keine daten bekommen. Kompliziert sieht es mMn auch nicht aus. Die Zeiteingabe ist genauso wie wenn man seinen Wecker stellt, das sollte jeder hinbekommen.
Alles anzeigenHi
Also: Dein Button und dein Bild erscheinen nicht mehr, sobald du es in die eigene Klasse auslagerst, richtig?
Also falls das der Fall ist: Du fügst die graphischen Objekte mit this.addView hinzu.
Das klappt in deinem Hauptactivity gut, weil dort innen drin "this" auch dem Hauptactivity entspricht.
Bist du jetzt aber in einer eigenen Klasse, dann ist "this" diese Klasse.
Du fügst es also nicht im Hauptactivity hinzu, sondern in deiner nebenläufigen Klasse.
Stattdessen kannst du deiner Klasse eine Referenz auf das Hauptactivity hinzufügen (übergibst du eh schon im Konstruktor an die Variable c).
Statt "this".add machst du dann "referenzAufHauptActivity".add
Konkret:
Ersetze:durch:
(Bei this.addView(myImageView); natürlich das gleiche).
PS: Wo erstellst du eig. dein ViewContainer-Objekt? Rufst du init() auf?
Das stimmt so nicht. Da die Containerklasse von einem Layout erbt, kannst du dem Layout mit "this.addView" auch weitere Views hinzufügen. Was ich jetzt spontan beim überfliegen des codes sehe, das keine parameter zu der containerklasse angegeben werden, bevor sie zum mainlayout hinzugefügt wird. Vielleicht musst du einfach noch die width und height für deinen container angeben.
man kann damit leben das etwas lange dauert, man kann aber auch ein wenig daran optimieren mit es nicht mehr ganz solang dauert
Also im Prinzip hast du zwei Problemchen.
1. Du verwendest die allgemeine Lib für die PlayServices. Da ist natürlich alles drin von Fitnnesskram über Maps, bis hin zur Cloud. Du solltest die spezielle PlayServices Lib raussuchen die du benötigst und diese verwenden statt dem monsterpack wo alles drin ist.
2. Anschließend kannst du dein APK minifizieren. Das erledigt ProGuard. Das ist ein Tool zur Nachbearbeitung von Android Projekten und ist im Buildsystem schon enthalten.
Auf der Seite ist das nochmal ausführlich beschrieben: https://developer.android.com/studio/build/shrink-code.html
Die minifizierung wird mit diesem Befehl im Gradlefile aktiviert:
In android gibt es sharedpreferences die du für sowas auch verwenden kannst, oder die SQLite Datenbank die jeder App beiwohnt. Soll es jedoch explizit eine textdatei sein, musst du unterscheiden wo du diese schreibst. Wenn du sie auf die SD-Karte schreibst, dann brauchst du die Permission die du gesetzt hast. Zum lesen einer externen Datei benötigst du die Permission READ_EXTERNAL_STORAGE']READ_EXTERNAL_STORAGE.
Zunächst würde ich erstmal ein Java-File anlegen, also:
Anschließend prüfen ob es bereits existiert, wenn nicht muss es erstellt werden:
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
Wenn das erledigt ist, kannst du der Datei Inhalt hinzufügen:
try {
String text = new String("Hello Android");
BufferedWriter buf = new BufferedWriter(new FileWriter(file, true));
buf.append(text);
buf.newLine();
buf.close();
} catch (IOException e) {
e.printStackTrace();
}
Einfach mit einem BufferedWriter appenden ist auch performancetechnisch etwas besser.
Das steht noch ausführlicher in der android dokumentation von google
Hallo und Willkommen bei uns!
gibt es tiefere Gründe warum der Fokus gerade auf das Thema Android gefallen ist, oder einfach nur aus Spaß :)?
Willkommen bei uns und schön das es auch mal Frauen zu uns verschlägt :)!
das ist leider relativ selten, allgemein in der Software-Branche.
ist ja umständlich. Hab noch nie damit gearbeitet aber gut zu wissen!
danke fürs lösung posten
Kommt drauf an welches Menü du meinst. Definierst du als Menü eine MainActivity von der aus du zu X anderen Activites kommst, oder definierst du Menü als diese drei punkte in einer Action/Toolbar wo man menuitems hinzufügen kann?
Wobei, die antwort wird wohl die selbe sein. Wenn du eine Activity verlassen möchtest, klickst du einfach auf den zurückbutton.
Scheint als habe ich einen passenden Stackoverflow post gefunden. Dieses Verhalten wird wohl nur eingesetzt, wenn das WLAN keine Internetverbindung aufweist. Das macht IMHO schon sinn.
Hier findest du die Lösung zu deinem Problem:
http://stackoverflow.com/quest…i-has-not-internet-access
leider habe ich keine zeit im moment um den aufbau nachzubauen und selbst mal zu testen. Das klingt aber aufjedenfall nach einem problem in android selbst. Was passiert denn wenn du die mobilen Datenverbindung deaktiviert hast und WLAN an hast in dem einen Szenario was nicht funktioniert?
du startest ja immerwieder eine neue activity wenn du auf einen button klickst, ohne die gerade vorhandene zu löschen. Da ist es kein wunder dass sich da der stack füllt. Wenn du von deiner zweiten activity zurück zur main möchtest, musst du nur auf den back button klicken. von dort aus kannst du dann erneut eine second activity aufrufen.