CS378 - Mobile Computing More UI. UI Review Containers – more formally ViewGroups – store widgets and other containers – examples: LinearLayout, RelativeLayout,

Slides:



Advertisements
Similar presentations
ANDROID DEVELOPMENT KELLY MCBEAN. DEVELOPMENT ENVIRONMENT OVERVIEW Eclipse Standard IDE for Developing Android Applications Install: 1.Java (JDK) – Since.
Advertisements

Android UserInterfaces Nasrullah Niazi. overView All user interface elements in an Android app are built using View and ViewGroup objects. A View is an.
CE881: Mobile and Social Application Programming Simon M. Lucas Menus and Dialogs.
Android 02: Activities David Meredith
User Interface Classes.  Design Principles  Views & Layouts  Event Handling  Menus  Dialogs.
Application Fundamentals. See: developer.android.com/guide/developing/building/index.html.
Filip Debelić What is it? Android is a mobile operating system (OS) based on the Linux kernel and currently developed by Google Android,
Android Fragments.
More on User Interface Android Applications. Layouts Linear Layout Relative Layout Table Layout Grid View Tab Layout List View.
By: Jeremy Smith.  Introduction  Droid Draw  Add XML file  Layouts  LinearLayout  RelativeLayout  Objects  Notifications  Toast  Status Bar.
CS378 - Mobile Computing User Interface Basics MIKE!! LOOK HERE FOR intercepting the ListView items:
Android: Layouts David Meredith
CS378 - Mobile Computing What's Next?. Fragments Added in Android 3.0, a release aimed at tablets A fragment is a portion of the UI in an Activity multiple.
Android Boot Camp for Developers Using Java, Comprehensive: A Guide to Creating Your First Android Apps Chapter 9: Customize! Navigating with a Master/Detail.
Android Development: Application Layout Richard S. Stansbury 2015.
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved Modify Android Objects Using.
Android: versions Note that: Honeycomb (Android v3.0) A tablet-only release Jelly Bean (Android v4.1) Released on July 09, 2012.
CS5103 Software Engineering Lecture 08 Android Development II.
PROG Mobile Java Application Development PROG Mobile Java Application Development Developing Android Apps: Components & Layout.
ANDROID UI – FRAGMENTS. Fragment  An activity is a container for views  When you have a larger screen device than a phone –like a tablet it can look.
Favorite Twitter® Searches App Android How to Program © by Pearson Education, Inc. All Rights Reserved.
Tip Calculator App Building an Android App with Java © by Pearson Education, Inc. All Rights Reserved.
Understanding Hello Android 1 CS300. Activity  Similar to a form  Base class for the visual, interactive components of your application  Android API.
Frank Xu Gannon University.  Linear Layout  Relative Layout  Table Layout.
INTRODUCTION TO ANDROID. Slide 2 Application Components An Android application is made of up one or more of the following components Activities We will.
CS378 - Mobile Computing More UI - Part 2. Special Menus Two special application menus – options menu – context menu Options menu replaced by action bar.
Programming Mobile Applications with Android September, Albacete, Spain Jesus Martínez-Gómez.
Android Boot Camp for Developers Using Java, 3E
User Interfaces: Part 1 (View Groups and Layouts).
Application Development for mobile Devices
Android – Fragments L. Grewe.
Cosc 5/4730 Dialogs and below 3.0 and above (fragment)
5-1 More UI CSNB544 Mobile Application Development Thanks to Utexas Austin.
Cosc 4730 Android Fragments. Fragments You can think of a fragment as a modular section of an activity, which has its own lifecycle, receives its own.
CRSD Technology Training Tony Judice. Quick Access Toolbar – can be modifiedSave as… allows you to save the file to a different location and also as an.
HW#9 Clues CSCI 571 Fall, HW#9 Prototype
MOBILE COMPUTING D10K-7D02 MC05: Android UI Design Dr. Setiawan Hadi, M.Sc.CS. Program Studi S-1 Teknik Informatika FMIPA Universitas Padjadjaran.
© 2016 Cengage Learning®. May not be scanned, copied or duplicated, or posted to a publicly accessible website, in whole or in part. Android Boot Camp.
CS378 - Mobile Computing More UI - Part 2. Special Menus Two special application menus – options menu – context menu Options menu replaced by action bar.
1 Android Development Lean and mean introduction Based on a presentation by Mihail L. Sichitiu.
CS378 - Mobile Computing User Interface Basics. User Interface Elements View – Control – ViewGroup Layout Widget (Compound Control) Many pre built Views.
More UI Action Bar, Navigation, and Fragments
Building User Interfaces Basic Applications
Chapter 2 Building User Interfaces and Basic Applications.
Interstage BPM v11.2 1Copyright © 2010 FUJITSU LIMITED FORMS.
CS371m - Mobile Computing User Interface Basics. UI Programming with Widgets Widget is an element in a Graphical User Interface (GUI) – not to be confused.
ANDROID LAYOUTS AND WIDGETS. Slide 2 Introduction Parts of the Android screen Sizing widgets and fonts Layouts and their characteristics Buttons, checkboxes.
School of Engineering and Information and Communication Technology KIT305/KIT607 Mobile Application Development Android OS –Permissions (cont.), Fragments,
Android Fundamentals. What is Android Software stack for mobile devices Software stack for mobile devices SDK provides tools and APIs to develop apps.
Android Fragments. Slide 2 Lecture Overview Getting resources and configuration information Conceptualizing the Back Stack Introduction to fragments.
The Flag Quiz app tests your ability to correctly identify 10 flags from various countries and territories.
CMPE419 Mobile Application Development Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren
UI Redux, Navigation Patterns, Tabbed Views, Pagers, Drawers
Java FX: Scene Builder.
Activities, Fragments, and Events
Activities and Intents
Creation of an Android App By Keith Lynn
Mobile Application Development Chapter 4 [Android Navigation and Interface Design] IT448-Fall 2017 IT448- Fall2017.
ANDROID UI – FRAGMENTS UNIT II.
CS371m - Mobile Computing User Interface Basics.
Chapter 3: Coding the GUI Programmatically, Layout Managers
CS371m - Mobile Computing User Interface Basics.
CS5103 Software Engineering
Mobile Computing With Android ACST 4550 Android Layouts
Building User Interfaces Basic Applications
Programming Mobile Applications with Android
Android Developer Fundamentals V2
CIS 470 Mobile App Development
Mobile Programmming Dr. Mohsin Ali Memon.
Android Sensor Programming
Presentation transcript:

CS378 - Mobile Computing More UI

UI Review Containers – more formally ViewGroups – store widgets and other containers – examples: LinearLayout, RelativeLayout, ListView, GridView, TableLayout, GridLayout Widgets – buttons, text views (labels), edit texts, spinners, radio buttons, seek bars

Concrete Example Tip Calculator What kind of layout to use? Widgets: – TextView – EditText – SeekBar

TextViews

EditText All but top EditText are uneditable Alternative? TextViews?

Uneditable EditText Or could have used TextView.

SeekBar

Layout TableLayout row 0 row 1 row 2 row 3 row 4 row 5

Layout Table Layouts made up of Table Rows Elements in Row appear in order declared in xml file

Layout Attributes android:background – #RGB, #ARGB, #RRGGBB, #AARRGGBB – can place colors in res/values/colors.xml

Color Resources Good Resource / W3C colors –

StretchColumns columns 0 indexed columns 1, 2, 3 can stretch to fill layout width column 0 wide as widest element, plus any padding for that element – try changing String in column 0 columns also shrinkable – shrink column(s) so table fits into parent object

Initial UI Done via some Drag and Drop, Outline view, and editing XML Demo outline view – properties

Changes to UI all TextViews' textColor set to black # change column for %DD labels use center gravity for components

Changes to UI change bill total and seekbar to span more columns gravity and padding for text in column 0

Changes to UI align text vertically with seekBar set seekBar progress to 18

Changes to UI Prevent Editing in EditText – focusable and cursor visible properties to false – inputType set to none Set text in EditText to 0.00 Change weights to 1 to spread out

onCreate - tip and total amounts onCreate instance variables assigned to components found via ids edit text for tip and total amounts

Functionality - Total EditText Another anonymous inner class implement onTextChanged to converts to double and call update methods register with EditText for total in onCreate()!

Functionality Responding to SeekBar customSeekBarListener instance variable type OnSeekBarChangeListener

Create an Anonymous Inner Class Class notified when seek bar changed and program updates custom tip and total amount must register with the seekBar instance variable in onCreate.

Changing Tip and Totals update standard tip and total amounts when bill amount changes

Update Custom Tip and Total

Functionality - Saving State onSaveInstance – save BillTotal and CustomPercent to the Bundle – check for these in onCreate

Orientation Change The application has a single layout Same layout used for vertical and horizontal orientations By default an orientation change will destroy and recreate an application before onDestroy called system will call onSaveInstanceState

onSaveInstanceState called by system before destroying activity – activity below top of activity stack and memory being reclaimed – orientation or configuration change passed a Bundle object write necessary data to Bundle object to restore state on restart Bundle passed to onCreate when restarted

onSaveInstanceState in the tip calculator: save value in Bill Total EditText and value of SeekBar All other values are calculated from these

onCreate - check savedInstanceState

onCreate check In, onCreate method check the Bundle value passed in to determine if creating Activity from scratch or a saved instance state

Constraining Input EditText from tip calculator input was numberDecimal Use InputFilter to constrain input Several built in filters such as AllCaps and LengthFilter

Custom Input Filter InputFilter Interface has one method: public CharSequence filter( CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { replace dstart to dend in dest with new text from start to end of source dest is current, source is new

DIALOGS

Dialogs - Old Way Dialogs from tutorials were cut and paste Implementing Dialogs demonstrates evolution of Android SDK legacy approach has Activity manage its own Dialogs created, initialized, updated, and destroyed using Activity class call back methods

Dialogs - New Way Android evolving from smartphone OS to smart device OS API level 11 (Android 3.0, the tablet release) introduced Fragments A fragment represents a behavior or a portion of a UI in an Activity – like a sub activity multiple fragments combined in multi-pane UI reuse fragments in multiple activities

Fragments

Dialogs as Fragments Dialogs are special type of Fragment managed by the FragmentManager class still part of an activity, but lifecycle not managed by the Activity – life cycle issues of Dialogs as Fragments will be more difficult to deal with – must save state and restore instance

Types of Dialogs Used to organize information and react to user events without creating a whole new activity Old Dialogs: – Dialog, AlertDialog, DatePickerDialog, TimePickerDialog, ProgressDialog New Dialogs: – DialogFragment 39

Sample Dialogs 40

Legacy Approach Dialog defined in Activity it is used Activity maintains a pool of Dialogs showDialog() method displays Dialog dismissDialog() method used to stop showing a Dialog – in tutorial, when we have difficulty removeDialog removes from pool

Legacy Approach - Steps Define unique indentifier for the Dialog in Activity (constants) implement onCreateDialog method, returns Dialog of appropriate type

onCreateDialog

Dialog Steps - Legacy Approach implement onPrepareDialog() if necessary – if necessary to update dialog each time it is displayed – for example, a time picker, update with the current time launch dialog with showDialog() – in tutorials done when a menu or action bar menu item selected – could launch Dialogs for other reasons

Alert Dialogs Most common type Title, Content Area, Action buttons (up to 3) Content area could be message, list, seekbar, etc. set positive, set negative, set neutral

Custom Dialogs AlertDialog very flexible, but you can create CustomDialogs Create a layout 46

Custom Dialogs from onCreateDialog 47

Custom Dialog Simple dialogs are dismissed with the back button dialog title 48

Dialogs - Fragment Method Decouple Dialogs from the Activity – good SE approach? – TicTacToe UI is almost 500 lines long! Implement a class that is a subclass of DialogFragment – DifficultyFragment – Send info to newInstance method (current difficulty, listener for updates) – onCreateDialog now in DifficultyFragment

DifficultyFragment

DifficultyFragment - onCreateDialog

Using DifficultyFragment In AndroidTicTacToe create a listener to pass to the newInstance method create and show Dialog as part of onOptionsItemSelected()

DifficultyListener

Using Fragments Fragments added in API level 11, Android 3.0, the tablet release Developers behind Android think fragments are so important that can be used in pre API 11 builds using the Android Support Library Froyo and Gingerbread pre API 11

Android Support Library (ASL) add library to project and application android.support.v4.app.DialogFragment – for example – instead of android.app.DialogFragment ASL does not support action bar in earlier versions of API – discover ActionBarSherlock

Fragment Lifecycle Common error: not dealing with orientation change when Dialog is open