GUI og XML programmering Hvor meget kode og hvor meget XML?

Slides:



Advertisements
Similar presentations
Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.
Advertisements

Android Application Development Tutorial. Topics Lecture 6 Overview Programming Tutorial 3: Sending/Receiving SMS Messages.
Programming with Android: Data management
Bruce Scharlau, University of Aberdeen, 2010 Android UI, and Networking Mobile Computing Based on android-sdk_2.2 Unless otherwise stated, images are from.
SOCKET PROGRAMMING WITH MOBILE SOCKET CLIENT DEARTMENT OF COMPUTER SCIENCE IOWA STATE UNIVERSITY.
CE881: Mobile and Social Application Programming Simon M. Lucas Quiz, Walkthrough, Exercise, Lifecycles, Intents.
CE881: Mobile and Social Application Programming Simon M. Lucas Menus and Dialogs.
Android Activity Class (Android Activities) Brugergrænseflade og brugeraktioner er en aktivitet // ** The Activity Class ******************************************
1 | 2010 Activity og GUI Android Brugergrænseflade.
M E N T O R M A T E, L L C. A L L R I G H T S R E S E R V E D. 2 Android Application Step by Step Eleonora Todorova Boyan Iliev.
Android og persistens
Android User Interface
Cosc 5/4730 Android: “Dynamic” data.. Saving Dynamic data. While there are a lot of ways to save data – Via the filesystem, database, etc. You can also.
Programming with Android: Activities and Intents Luca Bedogni Marco Di Felice Dipartimento di Informatica – Scienza e Ingegneria Università di Bologna.
Programming with Android: Widgets and Events Luca Bedogni Marco Di Felice Dipartimento di Scienze dell’Informazione Università di Bologna.
CSS216 MOBILE PROGRAMMING Android, Chapter 3 Book: “Professional Android™ 2 Application Development” by Reto Meier, 2010 by: Andrey Bogdanchikov (
All About Android Introduction to Android 1. Creating a New App “These aren’t the droids we’re looking for.” Obi-wan Kenobi 1. Bring up Eclipse. 2. Click.
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,
User Interface Android Applications. Activities An activity presents a visual user interface. Each activity is given a default window to draw in. The.
Cosc 4730 Android TabActivity and ListView. TabActivity A TabActivity allows for multiple “tabs”. – Each Tab is it’s own activity and the “root” activity.
Android: Layouts David Meredith
Data Storage: Part 1 (Preferences)
1 Mobile Software Development Framework: Android Activity, View/ViewGroup, External Resources, Listener 10/9/2012 Y. Richard Yang.
Better reference the original webpage :
Introducing the Sudoku Example
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.
Chapter 2: Simplify! The Android User Interface
Tip Calculator App Building an Android App with Java © by Pearson Education, Inc. All Rights Reserved.
ANDROID – INTERFACE AND LAYOUT L. Grewe. Interfaces: Two Alternatives Code or XML  You have two ways you can create the interface(s) of your Application.
DUE Hello World on the Android Platform.
Chapter 2 The Android User Interface. Objectives  In this chapter, you learn to:  Develop a user interface using the TextView, ImageView, and Button.
INTRODUCTION TO ANDROID. Slide 2 Application Components An Android application is made of up one or more of the following components Activities We will.
Android Boot Camp for Developers Using Java, 3E
Android – Fragments L. Grewe.
Android Boot Camp for Developers Using Java, Comprehensive: A Guide to Creating Your First Android Apps Chapter 2: Simplify! The Android User Interface.
Data Persistence Nasrullah Niazi. Share Preferences The SharedPreferences class provides a general framework that allows you to save and retrieve persistent.
Themes and Menus: The Sudoku Example Content taken from book: “Hello, Android” by Ed Burnette Third Edition.
Android Boot Camp Demo Application – Part 1. Development Environment Set Up Download and install Java Development Kit (JDK) Download and unzip Android.
Applications with Multiple Activities. Most applications will have more than one activity. The main activity is started when the application is started.
Video Games list lab 6  At the end of this lab you will be expected to know:  What Views, View Groups, Layouts, and Widgets are and how they relate to.
ANDROID – A FIRST PROGRAM L. Grewe Using AndroidStudio –basic Android  Lets do a “Hello World Project”  Start up AndroidStudio (assume you have installed.
Mobile Programming Lecture 7 Dialogs, Menus, and SharedPreferences.
Copyright© Jeffrey Jongko, Ateneo de Manila University Deconstructing HelloWorld.
Android: “Dynamic” data and Preferences data.
Android Application Lifecycle and Menus
© 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.
Mobile Programming Lecture 4 Resources, Selection, Activities, Intents.
ANDROID LAYOUTS AND WIDGETS. Slide 2 Introduction Parts of the Android screen Sizing widgets and fonts Layouts and their characteristics Buttons, checkboxes.
Mobile Application Development Data Storage. Android provides several options for you to save persistent application data. The solution you choose depends.
Editing a Twitter search. Viewing search results in a browser.
Chapter 2: Simplify! The Android User Interface
Lab7 – Appendix.
several communicating screens
GUI Programming Fundamentals
Android – Event Handling
Mobile Application Development Chapter 3 [Using Eclipse Android Studio for Android Development] IT448-Fall 2017 IT448- Fall2017.
Mobile Application Development Chapter 5 [Persistent Data in Android]
Activities and Intents
Mobile Application Development Chapter 4 [Android Navigation and Interface Design] IT448-Fall 2017 IT448- Fall2017.
ITEC535 – Mobile Programming
ANDROID UI – FRAGMENTS UNIT II.
Chapter 3: Coding the GUI Programmatically, Layout Managers
Android Programming Lecture 6
Learning Objectives Build an app involving several activities
BMI Android Application will take weight and height from the users to calculate Body Mass Index (BMI) with the information, whether user is underweight,
Activities and Intents
Mobile Programmming Dr. Mohsin Ali Memon.
Preference Activity class
Presentation transcript:

GUI og XML programmering Hvor meget kode og hvor meget XML?

Agenda •Clicker applikation med knapper i stede for ListActivity! •Applikation med flere Activities og Views –Data fra en Activity til en anden •Forberedelse til RESTFul service opslag –Brug af Android Service ->Tilføjelse af Android Preferences (Host adresse)

Motivation Sådan en apps skal vi også have

Android Application Class  Svarer ”nogenlunde” til J2ME Midlet  “Base class for those who need to maintain global application state. You can provide your own implementation by specifying its name in your AndroidManifest.xml's tag, which will cause that class to be instantiated for you when the process for your application/package is created.”  Kan håndterer onCreate, onTerminate, onLowMemory og onConfigurationChanged events

Eksempel Application class // ** The Application Class *************************************** // // Appliction Class Extenstion import android.app.Application; import android.content.res.Configuration; public class MyApplication extends Application { private static MyApplication singleton; // Returns the application instance public static MyApplication getInstance() { return singleton; public final void onCreate() { super.onCreate(); singleton = this; } // Manifest entry <application android:name="MyApplication"> [... Manifest nodes...]

Android Activity Class (Android Activities)  Brugergrænseflade og brugeraktioner er en aktivitet // ** The Activity Class ****************************************** // package com.paad.myapplication; import android.app.Activity; import android.os.Bundle; public class MyActivity extends Activity { /** Called when the activity is first created. public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } // ** Activity layout in XML <activity android:name=".MyActivity">

7 | 2010 Activity bruger View og Layout til UI og interaktion med brugeren •Activity og Form svarer til hinanden: Præsentere et skærmbillede 1:1 •Activity bruger Views, Layout og Widgets/Controls (Standard eller egne) •Der findes en sæt af specielt designede Activities i forhold til standard widgets •MapActivty, List Activty, ExpandableListActivty og TabActivity •Tilstand styret af Android Framework. •Mange Activities i en applikation kan give behov for eget Application objekt. “This hierarchy tree can be as simple or complex as you need it to be, and you can build it up using Android's set of predefined widgets and layouts, or with custom Views that you create yourself”. Screen Layout

8 | 2010 Klassehieraki

Activity ->Layout-> View -> Widget &| ->UI Control  View er adgangen til skærmressourcen på enheden  Layout er manageren, der kontrollere View opsætningen  Widget er en kontrol i View, og som ligner den rigtige verdens ting. Et ur eller et kompas. Kan også være et View  UI control er grafiske enheder som knapper eller public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); TextView myTextView = (TextView)findViewById(R.id.myText View); public void onCreate(Bundle icicle) { super.onCreate(icicle); TextView myTextView = new TextView(this); setContentView(myTextView); myTextView.setText("Hello, Android"); }

Klassediagram Et eksempel Fra

Layout hvordan XML og kode <LinearLayout xmlns:android=" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Enter Text Below" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Text Goes Here!" /> LinearLayout ll = new LinearLayout(this); ll.setOrientation(LinearLayout.VERTICAL); TextView myTextView = new TextView(this); EditText myEditText = new EditText(this); myTextView.setText("Enter Text Below"); myEditText.setText("Text Goes Here!"); int lHeight = LinearLayout.LayoutParams.FILL_PARENT; int lWidth = LinearLayout.LayoutParams.WRAP_CONTENT; ll.addView(myTextView, new LinearLayout.LayoutParams(lHeight, lWidth)); ll.addView(myEditText, new LinearLayout.LayoutParams(lHeight, lWidth)); setContentView(ll);

Hvad er der så at holde styr på i GUI’en?  View  ViewGroup  Layout  Widget Package summary.html summary.html  Menu (Menu knappen)  View properties: Statisk og/eller dynamisk.  UI Events  Define an event listener and register it with the View  Override an existing callback method for the View (Custom Views)  Menu Events

Event Listners java-application/ java-application/ 1.Inline Clas Implementation 2.Bruge “Implements” metoden 3.Bruge en variabel til en listner metode 4.XML attribute android:onClick="click1” •Sørg for at have en void click1(View v){ …} i Activity

Event Listners java-application/ java-application/ 1.Inline Clas Implementation 2.Bruge “Implements” metoden 3.Bruge en variabel til en listner metode 4.XML attribute android:onClick="click1” •Sørg for at have en void click1(View v){ …} metode i Activity

Data fra en Activity til en anden 1.Intent og Events 2.Content Provider 3.Shared Preferences 4.SQLLite 5.Filsystemet 6.En extern server 7.?? 1.I samme Apps ? 2.I forskellige Apps? 3.På forskellige Smartphones

Samme App Intent intent = new Intent(); intent.putExtra(BackDoorMan.REQ_Q_A, mes); intent.setClassName("dk.euc.clicker", "dk.euc.clicker.SecActivtity"); try { startActivity(intent); } catch (Exception e) protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.clicker); question = getIntent().getExtras().getString(BackDoorMan.REQ_Q_A);

Preferences og opsætning 1.Er tilknyttet egen Acitivity en xml fil og “hooks” i Preferences public class Preferences extends PreferenceActivity { public static final String PREF_CLICKER_HOST = "PREF_CLICKER_HOST"; SharedPreferences public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.samplepreferences); } <EditTextPreference android:key="PREF_CLICKER_HOST" android:summary="Preference Summary" />

Preferences Motodev Wizard

Preferences internt opret // Retrieve an editor to modify the shared preferences. SharedPreferences.Editor editor = mySharedPreferences.edit(); // Store new primitive types in the shared preferences object. editor.putBoolean("isTrue", true); editor.putFloat("lastFloat", 1f); editor.putInt("wholeNumber", 2); editor.putLong("aNumber", 3l); editor.putString("textEntryValue", "Not Empty"); // Commit the changes. editor.commit();

Preferences internt læs public void loadPreferences() { // Get the stored preferences int mode = Activity.MODE_PRIVATE; SharedPreferences mySharedPreferences = getSharedPreferences(MY_PREFS, mode); // Retrieve the saved values. boolean isTrue = mySharedPreferences.getBoolean("isTrue", false); float lastFloat = mySharedPreferences.getFloat("lastFloat", 0f); int wholeNumber = mySharedPreferences.getInt("wholeNumber", 1); long aNumber = mySharedPreferences.getLong("aNumber", 0); String stringPreference = mySharedPreferences.getString("textEntryValue", ""); }