Σημαντικές Κλάσεις του Android Fragments ViewPager TabHost

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Advertisements

Οπτικός Προγραμματισμός ( C++ Builder 5.0 )
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 10: Graphical User Interfaces Εβδομάδα 10: Εισαγωγή στα Γραφικά Περιβάλλοντα.
NIKOΛΑΟΣ ΝΤΙΡΛΗΣ 5ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΙΘΟΥΣΑ Β4 1.  Ένα thread έχει: ID, program counter, register set, stack  Μοιράζεται με τα άλλα threads της ίδιας διεργασίας.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Γραφικά Ενδιάμεσα Χρήστη στην Java
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Εισαγωγή σε Android Δομή αρχείων σε Android Projects
Google's Google App Engine and Google's Datastore API Andreas Manoli.
Επικοινωνία Ανθρώπου Μηχανής Καρακίτσος Ηλίας ΑΜ 614 Ιωάννου Ελένη ΑΜ 647.
ΕΠΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ-ΜΗΧΑΝΗΣ Παρουσίαση της LessTif  Μαραγκός ΘοδωρήςΑ.Μ. 557  Καρκάνης ΗλίαςΑ.Μ. 539.
Χρίστος Απλητσιώτης Γιώργος Ταλιαδώρος Βασίλης Βασιλείου Γιάννος Στυλιανού
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Copy Constructor Deep and Shallow Copies.
JAVA: Threads Θ. Βαρβαρίγου Καθηγ. ΕΜΠ Τηλ
HY-335 : Δίκτυα Υπολογιστών DHCP Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χειμερινό εξάμηνο
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Ζωγραφάκης Ιωάννης.
2η ΟΣΣ – Σύγχρονες μέθοδοι προγραμματισμού - Java
Threads Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά η μία μετά.
#develop The open source IDE for.NET. Τι είναι το #develop? o Διαβάζεται SharpDevelop. o Είναι ένα opensource IDE για το.ΝΕΤ platform. o Είναι μία συλλογή.
Android Μάριος Παπαχριστοδούλου Ελένη Σκιττίδου Σαββούλα Χρίστου ΕΠΛ371 Προγραμματισμός Συστημάτων.
Προγραμματισμός με GTK ΠΑΡΟΥΣΙΑΣΗ ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ «ΕΠΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ-ΜΗΧΑΝΗΣ» ΑΛΕΞΑΝΔΡΟΣ Κ. ΓΙΔΑΡΑΚΟΣ
Διάλ ε ξη 10 Android και Threads AsyncTasks Handlers SQLite Android και Web Services Android Design Patterns Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη.
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλίας Αντικειμενοστραφής Προγραμματισμός Ι Ενότητα 10: Αφηρημένες τάξεις. Διδάσκων: Νικόλαος Θ Λιόλιος, Καθηγητής.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα.
Αρχιτεκτονική Λογισμικού. Αρχιτεκτονική Συστήματος Λογισμικού Η Αρχιτεκτονική περιγράφει τη γενική στατική δομή του συστήματος, τα βασικά δομικά του στοιχεία,
Δίκτυα Κινητών Επικοινωνιών και Εφαρμογές 2 ο μέρος: Android ΠΜΣ: Τεχνολογίες Υπολογισμού και Δικτύων Τμήμα Μηχανικών Πληροφορικής ΤΕΙ Αθήνας.
Δομές Δεδομένων 8η Διάλεξη: Ταξινόμηση Ε. Μαρκάκης.
Arduino Mini howto Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας Ανδριτσάκης Δημήτρης Θερινό Σχολείο «Ανάπτυξη wearable συστήματος βασισμένου σε Arduino για χρήση.
Βάσεις Δεδομένων και Παγκόσμιος Ιστός Προγραμματιστική εργασία: «WebNews»
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java.
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
ΕΡΓΑΣΤΗΡΙΟ – No.7 Ηλεκτρονικού Εμπορίου Ε-Επιχειρείν Δρ. Χρήστος Κ. Γεωργιάδης Java APIs για Web Services: ΧΜL και JSP.
ERASMUS+ - ΒΔ 1 Σχολική Εκ π αίδευση – Εκ π αίδευση Ενηλίκων Ημερίδα Παροχής Πληροφοριών για τη Διαχείριση και Υλοποίηση των Εγκεκριμένων Σχεδίων (Πρόσκληση.
Βασικές ένοιες Αντικειμενοστραφούς Προγραμματισμού - Κλάσεις ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Διαφάνειες: ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ Προσαρμογή 2014:
ΗΛΙΑΚΟΙ ΘΕΡΜΟΣΙΦΩΝΕΣ Ο ηλιακός θερμοσίφωνας είναι ένα ενεργητικό ηλιοθερμικό σύστημα παραγωγής ζεστού νερού χρήσης χρησιμοποιώντας την ηλιακή ενέργεια.
Εξέλιξη Farm Manager iOS για δυνατότητα λογικής ομαδοποίησης, επισκόπησης εργασιών που εκκρεμούν και αναφορές Μπούρας Βασίλειος 2702 Επιβλέπων: Δρ. Λάντζος.
SEcuring TRansit CONtainers
Το πλαίσιο Διαλειτουργικότητας της Ηλεκτρονικής Διακυβέρνησης
Web Services στη C# Εργαστήριο 5
Windows Programming Web Forms.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Περιεχόμενα 1. Δρομολόγηση στο Internet 2. Δυναμική δρομολόγηση
Software Engineering for Web Applications
Πίνακες και αλφαριθμητικά
Προγραμματισμός κινητών συσκευών
Ασκήσεις Κεφάλαιο 11.
Wrapper Classes, Abstract Classes and Interfaces
Εισαγωγή σε Android Δομή αρχείων σε Android Projects
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
5 Ιουνίου – Ημέρα Περιβάλλοντος
Web Services στη C# Εργαστήριο 2
Εισαγωγή στην Πληροφορική μεγάλου όγκου δεδομένων
ΘΕΡΜΟΫΔΡΑΥΛΙΚΩΝ ΕΓΚΑΤΑΣΤΑΣΕΩΝ ΚΑΙ ΣΥΝΤΗΡΗΤΩΝ ΚΕΝΤΡΙΚΗΣ ΘΕΡΜΑΝΣΗΣ
ΧΡΗΣΗ ΤΟΥ ΓΡΑΦΙΚΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΣΤΟ MATLAB(GUI) – ΑΝΑΠΤΥΞΗ ΑΠΛΗΣ ΕΦΑΡΜΟΓΗΣ ΣΤΗ ΔΙΔΑΣΚΑΛΙΑ ΤΩΝ ΨΗΦΙΑΚΩΝ ΚΥΚΛΩΜΑΤΩΝ ΦΟΙΤΗΤΕΣ: ΣΚΡΙΜΠΑΣ ΜΙΧΑΗΛ–ΑΕΜ:3135 ΤΑΚΟΣ.
Swing II Εβδομάδα Νο. 6.
JAVA Basics Εβδομάδα Νο. 1.
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
Προγραμματισμός κινητών συσκευών
Εισαγωγή στη Java (Μέρος Α’)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Διάλεξη #10: Εκτέλεση Java χωρίς το BlueJ
Wrapper Classes, Abstract Classes and Interfaces
Λογισμικό Εφαρμογών/Επεξεργασία Κειμένου
Week 10: Graphical User Interfaces
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Μεταγράφημα παρουσίασης:

Σημαντικές Κλάσεις του Android Fragments ViewPager TabHost Διάλεξη 9 Σημαντικές Κλάσεις του Android Fragments ViewPager TabHost Διάλεξη 9 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2014-2015 1

Τμήμα Πληροφορικής και Τηλεπικοινωνιών Σημαντικές Κλάσεις του Android Fragments ViewPager TabHost Διάλεξη 9 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο 2014-2015

Η κλάση Intent Ο ρόλος ενός intent είναι να ειδοποιηθεί το ActivityManagerService ότι ο χρήστης επιθυμεί να γίνει κάποια ενέργεια. Ένα intent είναι ένα αντικείμενο της κλάσης Intent το οποίο περιέχει κάποιο περιεχόμενο (το μήνυμα του intent) Μέσω των intents μπορούμε να ξεκινήσουμε την εκτέλεση των Activities, των Services και των Broadcast Receivers Ένα activity μπορεί να εκτελεστεί με χρήση των Context.startActivity(Intent intent) Activity.startActivityForResult(Intent intent, int RequestCode) Ένα service μπορεί να εκτελεστεί με χρήση της Context.startService(Intent service) Μια εφαρμογή μπορεί να δημιουργήσει ένα broadcast μήνυμα με χρήση του Intent Context.sendBroadcast(Intent intent), Context. sendOrderedBroadcast(Intent intent, String receiverPermission) Context. sendStickyBroadcast(Intent intent) Διάλεξη 9

Η κλάση Intent MainActivity HelloActivity Δημιουργία Intent Διάλεξη 9

Εκτέλεση στον Emulator (Intent) Press Button Back Button Διάλεξη 9

Παράδειγμα Intent – Εκκίνηση Εφαρμογής1 Πάτημα κουμπιού εφαρμογής Ειδοποίηση του ActivityManager σχετικά με την ενέργεια που επιθυμεί ο χρήστης Έλεγχος και δημιουργία Διεργασίας για την εφαρμογή που εκκίνησε ο χρήστης Δημιουργία του Activity που έχει δηλωθεί ως αρχικό στο Android Manifest xml αρχείο της εφαρμογής Διάλεξη 9 1 http://coltf.blogspot.gr/p/android-os-processes-and-zygote.html

Η κλάση PendingIntent Η κλάση PendingIntent δίνει τη δυνατότητα εκτέλεσης μίας διαδικασίας από άλλη εφαρμογή όπως NotificationManager AlarmManager HomeScreen AppWidgetManager Επιτρέπει στην άλλη εφαρμογή να εκτελέσει τη διαδικασία με τα δικαιώματα της δικής μας εφαρμογής Αντιθέτως με το Intent όπου η διαδικασία θα εκτελεστεί με τα δικαιώματα της άλλης εφαρμογής Διάλεξη 9

Η κλάση Service Η βασική κλάση για διαδικασίες που εκτελούνται στο παρασκήνιο extends Service override onCreate Δεν έχει γραφική διεπαφή Από default δεν είναι μια ξεχωριστή διεργασία ούτε ένα ξεχωριστό thread. Αποτελεί τμήμα του main thread. Αν επιθυμούμε μπορούμε να καθορίσουμε ότι θα τρέχει σε ξεχωριστή διεργασία Παραδείγματα χρήσης network downloading Αναπαραγωγή μουσικής στο παρασκήνιο TCP/UDP Server Διάλεξη 9

Η κλάση BroadcastReceiver extends BroadcastReceiver implements onReceive() Οι ανακοινώσεις broadcast μπορεί να Παράγονται από το λειτουργικό (OS-generated) π.χ. χαμηλή στάθμη μπαταρίας, αποκατάσταση σύνδεσης Wifi, πάτημα του πλήκτρου της φωτογραφικής Παράγονται από το χρήστη (User-generated) π.χ. έναρξη ή τερματισμός μια διαδικασίας, ενεργοποίηση ενός χαρακτηριστικού Διάλεξη 9

System Events Event Description Intent.ACTION_BOOT_COMPLETED Το boot έγινε με επιτυχία .Απαιτείται η άδεια, android.permission.RECEIVE_BOOT_COMPLETED. Intent.ACTION_POWER_CONNECTED Έγινε σύνδεση του φορτιστή στην συσκευή. Intent.ACTION_POWER_DISCONNECTED Έγινε αποσύνδεση του φορτιστή από την συσκευή. Intent.ACTION_BATTERY_LOW Η στάθμη της μπαταρίας είναι χαμηλή. Χρησιμοποιείται για την εξοικονόμηση ενέργειας από εφαρμογές που καταναλώνουν πολύ. Intent.ACTION_BATTERY_OKAY Η στάθμη της μπαταρίας είναι σε καλό επίπεδο. Διάλεξη 9

BroadcastReceiver – Παράδειγμα Παράδειγμα χρήσης BroadcastReceiver για ανάκτηση πληροφοριών σχετικά με το Wifi Manifest File Activity WifiReceiver extends BroadcastReceiver Διάλεξη 9

BroadcastReceiver – Παράδειγμα WifiReceiver Διάλεξη 7

Η κλάση IntentService Χρησιμοποιείται Για διαδικασίες που απαιτούν πολύ χρόνο. Συνήθως δεν απαιτείται επικοινωνία με το main thread Αν χρειαστεί επικοινωνία με το main thread, γίνεται με τη βοήθεια handler ή broadcast intents Όταν απαιτείται callback (intent) Καλείται μέσω intent μόνο από το main Thread Εκτελείται σε ξεχωριστό νήμα (worker thread) ΔΕΝ μπορεί να εκτελέσει πράγματα παράλληλα Πολλαπλά intents δημιουργούν ουρά εκτελέσεων στο ίδιο worker thread Διάλεξη 9

Η κλάση Log Χρήση της κλάσης Log για debugging Η εκτύπωση στη standard έξοδο (System.out.println) ΔΕΝ δουλεύει Χρήση της κλάσης Log για debugging Ενεργοποίηση του LogCat: Window-> Show View -> Other -> Android-> Logcat H κλάση Log παρέχει αρκετές static μεθόδους για εκτύπωση μηνυμάτων διαφορετικής σημασίας για το λειτουργικό σύστημα: Log.e( ): Errors Log.w( ): Warnings Log.i( ): Information Log.d( ): Debugging Log.v( ): Verbose Διάλεξη 9

Η κλάση Log HelloActivity LogCat Διάλεξη 7

Ειδοποιήσεις (Notifications) (1) Δημιουργία ειδοποιήσεων στο Android Τριών ειδών ειδοποιήσεις Toast AlertDialog Notification Διάλεξη 9

Ειδοποιήσεις (Notifications) (2) Toast Toast toast = Toast.makeText(this,”Notification",Toast.LENGTH_SHORT); toast.show(); Notification NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.notification_icon) .setContentTitle("New notification") .setContentText("Hello Android!"); Διάλεξη 9

Ειδοποιήσεις (Notifications) (3) AlertDialog AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setMessage("Do you like to exit now?") .setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { // Exit code } }) .setNegativeButton("No", new DialogInterface.OnClickListener() { // Return code }); AlertDialog dialog = builder.create(); Διάλεξη 9

Fragments Ανεξάρτητο component το οποίο χρησιμοποιείται από activities. Για τα fragments ορίζεται κύκλος ζωής αντίστοιχος του κύκλου ζωής ενός activity. Δυναμικός και στατικός ορισμός(on application running). Θεωρείται ως ένα είδος sub-activity. Μια κλάση ορίζεται ως Fragment extend Fragment,ListFragment,DialogFragment,PreferenceFragment Override onCreateView(). Γενικά μας δίνει την δυνατότητα να επαναχρησιμοποιούμε components σε διαφορετικά layouts. Διάλεξη 9

Fragments(1) Method Description onAttach() onCreate() onCreateView() Το instance του fragment συσχετίζεται με το instance του activity. onCreate() Δημιουργία το fragment onCreateView() Το instance του fragment δημιουργεί την ιεραρχία παρουσίασης(view hierarchy) του .Η ιεραρχία αυτή γίνεται μέλος της ιεραρχίας του activity στο όποιο έχει οριστεί το fragment. onActivityCreated() Το activity και το fragment έχουν δημιουργήσει τα instances τους με βάση τα view hierarchy τους. Πλέον υπάρχει πρόσβαση σε αυτά με την μέθοδο findViewbyId(). onResume() Το fragment είναι πλέον ενεργό και ορατό στον χρήστη. onPause() Το fragment είναι ορατό αλλά όχι ενεργό, πχ κάποιο άλλο activity χρησιμοποιεί το συγκεκριμένο fragment. onStop() Το fragment πλέον δεν είναι ορατό στον χρήστη. Διάλεξη 9

Fragments(2) Διάλεξη 9

ViewPager Layout διαχειριστής, επιτρέπει στον χρήστη να πλοηγείται «δεξιά - αριστερά» σε διαφορετικές οθόνες δεδομένων. Η χρήση του ViewPager προϋποθέτει τον ορισμό του PageAdapter. Ο PageAdapter είναι υπεύθυνος για την δημιουργία των οθονών του ViewPager. Συνδυαστική χρήση με Fragment με σκοπό την βέλτιστη διαχείριση του κύκλου ζωής της εκάστοτε σελίδας. Διάλεξη 9

TabHost Αποτελείται από δύο «παιδιά» : Ένα σύνολο από tab labels τα οποία ο χρήστης επιλέγει ώστε να διαλέξει ένα συγκεκριμένο tab καθώς και ένα FrameLayout με πληροφορίες για το περιεχόμενο του κάθε tab. Κάποιες βασικές μέθοδοι της κλάσης TabHost είναι : Α) addTab() B) getCurrentTab() C) getTabContentView() : Επιστρέφει το FrameLayout το οποίο έχει αποθηκευμένο το περιεχόμενο του tab. D) setup() : Καλείται πριν την addTab() σε περίπτωση που το tab έχει γίνει load με την χρήση της findViewById(). mTabHost = (TabHost) findViewById(R.id.tabhost); mTabHost.setup(); mTabHost.addTab(TAB_TAG_1, "Hello, world!", "Tab 1"); Διάλεξη 9

Αναφορές Log documentation: http://developer.android.com/reference/android/util/Log.html Android Web Services: http://mobileorchard.com/android-app-development-calling-web-services/ Android Tab Layout with Swipeable Views : http://www.androidhive.info/2013/10/android-tab-layout-with-swipeable-views-1/ Fragments : http://developer.android.com/guide/components/fragments.html ViewPager : http://developer.android.com/reference/android/support/v4/view/ViewPager.html Διάλεξη 9