Android Development for Beginners
Transcription
Android Development for Beginners
Android Development for Beginners Android Development for Beginners ©2012 by Edureka.in, All rights reserved. No part of this document may be reproduced or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without prior written permission of Edureka.in, Incorporated. © 2012 Edureka.in Pvt. Ltd, All rights reserved. 1 Android Development for Beginners TABLE OF CONTENTS CHAPTER 1: JAVA REVIEW ............................................................................... 5 1.1 Creating Basic Java Applications .................................................................................................. 6 1.2 Creating Applications in Packages .............................................................................................. 7 1.3 Java Variables ...................................................................................................................................... 8 1.4 Java Conditionals and Loops ....................................................................................................... 10 1.5 Java Arrays ......................................................................................................................................... 13 1.6 Java Array Lists ................................................................................................................................ 15 Chapter 1 Lab Exercise ......................................................................................................................... 18 CHAPTER 2: JAVA OBJECT ORIENTED CONCEPTS REVIEW ................................ 20 2.1 Creating a Java Class .................................................................................................................. 21 2.2 Improving the Java Class ......................................................................................................... 23 2.3 Using Inheritance ........................................................................................................................ 26 2.4 Understanding Interfaces ........................................................................................................ 31 2.5 The Static Context ....................................................................................................................... 37 Chapter 2 Lab Exercise ......................................................................................................................... 41 CHAPTER 3: CREATING YOUR FIRST ANDROID APPLICATION ........................... 43 3.1 The Hello World Application .................................................................................................. 44 3.2 Working with the Emulator..................................................................................................... 46 3.3 Strings ............................................................................................................................................. 51 3.4 Drawables ...................................................................................................................................... 54 3.5 Introducing the Manifest .......................................................................................................... 57 © 2012 Edureka.in Pvt. Ltd, All rights reserved. 2 Android Development for Beginners 3.6 Understanding the Activity Lifecycle ................................................................................... 59 Chapter 3 Lab Exercise ......................................................................................................................... 61 CHAPTER 4: CREATING LISTENERS .................................................................. 62 4.1 Listeners Using an Inner Class ............................................................................................... 63 4.2 Listeners Using an Interface ................................................................................................... 65 4.3 Listeners By Variable Name .................................................................................................... 68 4.4 Long Clicks ..................................................................................................................................... 71 4.5 Keyboard Listeners .................................................................................................................... 75 Chapter 4 Lab Exercise ......................................................................................................................... 77 CHAPTER 5: UNDERSTANDING ANDROID VIEW CONTAINERS.......................... 79 5.1 Linear Layout ............................................................................................................................... 80 5.2 Relative Layout ............................................................................................................................ 83 5.3 Table Layout ................................................................................................................................. 86 5.4 List View ......................................................................................................................................... 89 Chapter 5 Lab Exercise ......................................................................................................................... 92 CHAPTER 6: ANDROID WIDGETS PART I .......................................................... 93 6.1 Custom Buttons ............................................................................................................................ 94 6.2 Toggle Buttons ............................................................................................................................. 96 6.3 Checkboxes and Radio Buttons .............................................................................................. 99 6.4 Spinners ........................................................................................................................................ 103 Chapter 6 Lab Exercise ....................................................................................................................... 106 CHAPTER 7: ANDROID WIDGETS PART II ....................................................... 108 © 2012 Edureka.in Pvt. Ltd, All rights reserved. 3 Android Development for Beginners 7.1 Autocomplete Text Box ......................................................................................................... 109 7.2 Map View ...................................................................................................................................... 111 7.3 Web Views ................................................................................................................................... 113 7.4 Time and Date Pickers ............................................................................................................ 115 Chapter 7 Lab Exercise ....................................................................................................................... 119 CHAPTER 8: COMMUNICATING BETWEEN ACTIVITIES ................................... 120 8.1 Switching Activities .................................................................................................................. 121 8.2 Putting Extra ............................................................................................................................... 125 8.3 Using Shared Preferences ...................................................................................................... 129 Chapter 8 Lab Exercise ....................................................................................................................... 134 CHAPTER 9: STORING INFORMATION ON THE DEVICE ................................... 135 9.1 Internal Storage ......................................................................................................................... 136 9.2 External Storage ........................................................................................................................ 141 9.3 Web Communication and Storage ....................................................................................... 145 Chapter 9 Lab Exercise ....................................................................................................................... 148 CHAPTER 10: AUDIO AND VIDEO .................................................................. 149 10.1 Playing Audio with the MediaPlayer ............................................................................... 150 10.2 Playing Video with the MediaPlayer ............................................................................... 153 Chapter 10 Lab Exercise ..................................................................................................................... 155 © 2012 Edureka.in Pvt. Ltd, All rights reserved. 4 Android Development for Beginners Chapter 1: Java Review © 2012 Edureka.in Pvt. Ltd, All rights reserved. 5 Android Development for Beginners 1.1 Creating Basic Java Applications public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World from Java"); } } Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 6 Android Development for Beginners 1.2 Creating Applications in Packages package edureka.in.androidcourse; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World from Java"); } } Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 7 Android Development for Beginners 1.3 Java Variables package edureka.in.androidcourse; public class Variables { public static void main(String[] args) { // Variables int age; //Variable Declaration age= 37; float gpa = 3.77f; //Delcaration and Initialization double preciseNumner = 1.000005; byte score = 12; short tennisScore = 30; long socialSecNumber = 650162727; boolean isPlaying = true; char letterGrade = 'A'; System.out.println("Our integer value is: " + age); System.out.println("Our floating point value is: " + gpa); System.out.println("Out boolean value is: " + isPlaying); /* Aritmatic Operators +, - , *, / ++ -% Increment Operator adds One Decrement Operator subtracts One Modulus Operator Combined Assignment Operators += -= *= /= Add (or concatenate) and then assign Subtract then Assign Multiply then Assign Divide then Assign */ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 8 Android Development for Beginners System.out.println("Next year I will be " + (++age)); System.out.println("17 % 3 = " + (17%3)); tennisScore += 10; //tennisScore = tennisScore+10; System.out.println("Tennis Score= " + tennisScore); } } Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 9 Android Development for Beginners 1.4 Java Conditionals and Loops Conditionals.java package edureka.in.androidcourse; public class Conditionals { public static void main(String[] args) { int age = 37; boolean citizen = true; if(age>=18 && citizen) { //True System.out.println("You are eligible to vote."); } else { //False System.out.println("You are ineligible to vote."); } } } ComplexConditionals.java package edureka.in.androidcourse; public class ComplexConditionals { public static void main(String[] args) { int age =60; if(age<18) { System.out.println("You are still young."); } else if(age<29) { System.out.println("These are the years you should be having fun."); } else if(age<39) { System.out.println("Time to get serious about your career."); } else if(age < 49) { © 2012 Edureka.in Pvt. Ltd, All rights reserved. 10 Android Development for Beginners System.out.println("These are your money-making years."); } else if(age <59) { System.out.println("I hope you are preparing for retirement."); } else { System.out.println("You are offically old."); } } } Switch.java package edureka.in.androidcourse; public class Switch { public static void main(String[] args) { char grade = 'c'; switch(grade) { case 'A': case 'a': System.out.println("Outstanding Achievement."); break; case 'B': case 'b': System.out.println("Above Average Achievement"); break; case 'C': case 'c': System.out.println("Average Achievement."); break; case 'D': case 'd': System.out.println("Low Passing Score."); break; case 'F': case 'f': System.out.println("Failing Grade."); break; default: System.out.println("Grade not recognized"); } © 2012 Edureka.in Pvt. Ltd, All rights reserved. 11 Android Development for Beginners } } Loops.java package edureka.in.androidcourse; public class Loops { public static void main(String[] args) { /* int x = 0; while(x < 101) { System.out.println(x); x++; } int y=300; do { System.out.println(y); y+=5; }while(y < 251); */ for(int z=100; z > -1; z=z-5) { System.out.println(z); } } } © 2012 Edureka.in Pvt. Ltd, All rights reserved. 12 Android Development for Beginners 1.5 Java Arrays package edureka.in.androidcourse; public class Arrays { public static void main(String[] args) { int[] agesOfFamily; agesOfFamily = new int[6]; agesOfFamily[0] agesOfFamily[1] agesOfFamily[2] agesOfFamily[3] agesOfFamily[4] agesOfFamily[5] = = = = = = 37; 69; 65; 31; 4; 2; System.out.println("My adorable nephew is " + agesOfFamily[5] + " years old"); String[] familyMembers; familyMembers = new String[5]; familyMembers[0] familyMembers[1] familyMembers[2] familyMembers[3] familyMembers[4] = = = = = "Mark"; "Joan"; "Rick"; "Brett"; "Rose"; System.out.println("My grandmother's name is " + familyMembers[4]); for(int i=0; i < familyMembers.length; i++) { System.out.println(familyMembers[i]); } } } Notes _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 13 Android Development for Beginners _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 14 Android Development for Beginners 1.6 Java Array Lists package edureka.in.androidcourse; import java.util.*; public class ArrayLists { public static void main(String[] args) { ArrayList airlines = new ArrayList(); System.out.println("Array list airline initial size: " + airlines.size()); airlines.add("American"); airlines.add("Delta"); airlines.add("United"); airlines.add("US Airways"); airlines.add("jetBlue"); airlines.add("Southwest"); System.out.println("Array list airline initial size: " + airlines.size()); System.out.println("Airlines in the list: " + airlines); System.out.println("The first airline: " + airlines.get(0)); System.out.println("The last airline: " + airlines.get(5)); airlines.remove(3); System.out.println("The third airlines is now: " + airlines.get(3)); } } Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 15 Android Development for Beginners © 2012 Edureka.in Pvt. Ltd, All rights reserved. 16 Android Development for Beginners © 2012 Edureka.in Pvt. Ltd, All rights reserved. 17 Android Development for Beginners Chapter 1 Lab Exercise 1. Create a new Java class and create an ArrayList called players that has the following members: Joey Thomas Joan Sarah Freddie Aaron 2. Create a second ArrayList called battingAverages. Populate the ArrayList with the following values: .333 .221 .401 .297 .116 .250 3. By accessing each element of both ArrayLists output each name and batting average in row. Place the next name and batting average in the subsequent row. 4. Calculate and output the team average batting average. 5. Add the name “Horace” and the batting average .232 to the appropriate ArrayLists. (Use the appropriate ArrayList method.) Re-output the names and batting averages as instructed in step 3. Also recalculate the team average. You should refactor the code at this point so that the routine to output the information and calculate the team average are is not repeated. Instead, use function calls. 6. Sort the ArrayList by name. (You may need to investigate the methods associated with the © 2012 Edureka.in Pvt. Ltd, All rights reserved. 18 Android Development for Beginners ArrayList class.) Note that now that you have done this the batting averages no longer correspond to the correct players. Look up the HashTable class in the java documentation. (http://docs.oracle.com/javase/1.4.2/docs/api/java/u til/Hashtable.html) Use this documentation to recreate the inital data as a HashTable. 7. Access each element pair in the HashTable and output the name and batting average to the console. © 2012 Edureka.in Pvt. Ltd, All rights reserved. 19 Android Development for Beginners Chapter 2: Java Object Oriented Concepts Review © 2012 Edureka.in Pvt. Ltd, All rights reserved. 20 Android Development for Beginners 2.1 Creating a Java Class Animal.java package edureka.in.android; public class Animal_driver { /** * @param args */ public static void main(String[] args) { Animal doggie = new Animal(); doggie.name = "Rover"; doggie.age = 3; doggie.length = 36; doggie.weight = 17; doggie.breathe(); doggie.eat("Vittles"); doggie.sleep(); System.out.println("The animal's name is: " + doggie.name); System.out.println("The animal's age is: " + doggie.age); System.out.println("The animal's length is: " + doggie.length); } } Animal_driver.java package edureka.in.android; public class Animal_driver { /** * @param args */ public static void main(String[] args) { Animal doggie = new Animal(); doggie.name = "Rover"; doggie.age = 3; © 2012 Edureka.in Pvt. Ltd, All rights reserved. 21 Android Development for Beginners doggie.length = 36; doggie.weight = 17; doggie.breathe(); doggie.eat("Vittles"); doggie.sleep(); System.out.println("The animal's name is: " + doggie.name); System.out.println("The animal's age is: " + doggie.age); System.out.println("The animal's length is: " + doggie.length); } } Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 22 Android Development for Beginners 2.2 Improving the Java Class Animal.java package edureka.in.android; public class Animal { /* * Private- Accessible only within the class * Public- Accessible within the class and to other classes * Protected- Accessible within the class and to children of the class (subclassess) */ //Properties of Animal //Known as "members" private int age; private int length; private String name; private int weight; public Animal(int age, int length, String name, int weight) { this.age = age; this.length = length; this.name = name; this.weight = weight; } public Animal() { } public int getAge() { return age; } public void setAge(int age) { if(age>0){ this.age = age; } } © 2012 Edureka.in Pvt. Ltd, All rights reserved. 23 Android Development for Beginners public int getLength() { return length; } public void setLength(int length) { if(length>0){ this.length = length; } } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getWeight() { return weight; } public void setWeight(int weight) { if(weight >0) { this.weight = weight; } } //Methods void eat(String food) { System.out.println("Animal is eating " + food); } void sleep() { System.out.println("Animal is sleeping"); } void breathe() { System.out.println("Animal is breathing"); } } © 2012 Edureka.in Pvt. Ltd, All rights reserved. 24 Android Development for Beginners Animal_driver.java package edureka.in.android; public class Animal_driver { /** * @param args */ public static void main(String[] args) { Animal doggie = new Animal(); doggie.setName("Rover"); doggie.setAge(3); doggie.setLength(36); doggie.setWeight(17); doggie.breathe(); doggie.eat("Vittles"); doggie.sleep(); System.out.println("The animal's name is: " + doggie.getName()); System.out.println("The animal's age is: " + doggie.getAge()); System.out.println("The animal's length is: " + doggie.getLength()); Animal kittie = new Animal(1, 23, "Kitty", 5); System.out.println("The second animal's name is " + kittie.getName()); kittie.eat("shrimp"); } } Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 25 Android Development for Beginners 2.3 Using Inheritance Animal.java package edureka.in.android; public class Animal { /* * Private- Accessible only within the class * Public- Accessible within the class and to other classes * Protected- Accessible within the class and to children of the class (subclassess) */ //Properties of Animal //Known as "members" private int age; private int length; private String name; private int weight; public Animal(int age, int length, String name, int weight) { this.age = age; this.length = length; this.name = name; this.weight = weight; } public Animal() { } public int getAge() { return age; } public void setAge(int age) { if(age>0){ this.age = age; } } © 2012 Edureka.in Pvt. Ltd, All rights reserved. 26 Android Development for Beginners public int getLength() { return length; } public void setLength(int length) { if(length>0){ this.length = length; } } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getWeight() { return weight; } public void setWeight(int weight) { if(weight >0) { this.weight = weight; } } //Methods public void eat(String food) { System.out.println("Animal is eating " + food); } public void sleep() { System.out.println("Animal is sleeping"); } public void breathe() { System.out.println("Animal is breathing"); } } © 2012 Edureka.in Pvt. Ltd, All rights reserved. 27 Android Development for Beginners Fish.java package edureka.in.android; public class Fish extends Animal { boolean scales; public Fish(int age, int length, String name, int weight, boolean scales) { super(age, length, name, weight); this.scales = scales; } public Fish() { } //New Method specific to the fish class public void swim() { System.out.println("Fish is swimming"); } //Overriding the method in the parent public void breathe() { System.out.println("Fish is breathing through its gills"); } } Animal_driver.java package edureka.in.android; public class Animal_driver { /** * @param args */ public static void main(String[] args) { Animal doggie = new Animal(); © 2012 Edureka.in Pvt. Ltd, All rights reserved. 28 Android Development for Beginners doggie.setName("Rover"); doggie.setAge(3); doggie.setLength(36); doggie.setWeight(17); doggie.breathe(); doggie.eat("Vittles"); doggie.sleep(); System.out.println("The animal's name is: " + doggie.getName()); System.out.println("The animal's age is: " + doggie.getAge()); System.out.println("The animal's length is: " + doggie.getLength()); Animal kittie = new Animal(1, 23, "Kitty", 5); System.out.println("The second animal's name is " + kittie.getName()); kittie.eat("shrimp"); Fish goldfish = new Fish(1, 2, "Goldie", 1, true); System.out.println("The fish's name is: " + goldfish.getName()); goldfish.setWeight(2); System.out.println("The fish's weight is: " + goldfish.getWeight()); } } Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 29 Android Development for Beginners © 2012 Edureka.in Pvt. Ltd, All rights reserved. 30 Android Development for Beginners 2.4 Understanding Interfaces Animal.java package edureka.in.android; public class Animal { /* * Private- Accessible only within the class * Public- Accessible within the class and to other classes * Protected- Accessible within the class and to children of the class (subclassess) */ //Properties of Animal //Known as "members" private int age; private int length; private String name; private int weight; public Animal(int age, int length, String name, int weight) { this.age = age; this.length = length; this.name = name; this.weight = weight; } public Animal() { } public int getAge() { return age; } public void setAge(int age) { if(age>0){ this.age = age; } } © 2012 Edureka.in Pvt. Ltd, All rights reserved. 31 Android Development for Beginners public int getLength() { return length; } public void setLength(int length) { if(length>0){ this.length = length; } } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getWeight() { return weight; } public void setWeight(int weight) { if(weight >0) { this.weight = weight; } } //Methods public void eat(String food) { System.out.println("Animal is eating " + food); } public void sleep() { System.out.println("Animal is sleeping"); } public void breathe() { System.out.println("Animal is breathing"); } } © 2012 Edureka.in Pvt. Ltd, All rights reserved. 32 Android Development for Beginners Pray.java package edureka.in.android; public interface Pray { void getChased(); void getEaten(); } Predator.java package edureka.in.android; public interface predator { void chasePray(); void eatPray(); } Lion.java package edureka.in.android; public class Lion extends Animal implements predator { public Lion(int age, int length, String name, int weight) { super(age, length, name, weight); // TODO Auto-generated constructor stub } public Lion() { // TODO Auto-generated constructor stub } @Override public void chasePray() { System.out.println("The Lion is chasing some pray"); } @Override public void eatPray() { System.out.println("The Lion is eating it's pray"); } © 2012 Edureka.in Pvt. Ltd, All rights reserved. 33 Android Development for Beginners public void roar(){ System.out.println("ROARRRR!"); } } Fish.java package edureka.in.android; public class Fish extends Animal implements Pray { boolean scales; public Fish(int age, int length, String name, int weight, boolean scales) { super(age, length, name, weight); this.scales = scales; } public Fish() { } //New Method specific to the fish class public void swim() { System.out.println("Fish is swimming"); } //Overriding the method in the parent public void breathe() { System.out.println("Fish is breathing through its gills"); } @Override public void getChased() { System.out.println("Fish is being chased."); } @Override public void getEaten() { © 2012 Edureka.in Pvt. Ltd, All rights reserved. 34 Android Development for Beginners System.out.println("Fish is being eaten. Goodbye"); } } Animal_driver.java package edureka.in.android; public class Animal_driver { /** * @param args */ public static void main(String[] args) { Animal doggie = new Animal(); doggie.setName("Rover"); doggie.setAge(3); doggie.setLength(36); doggie.setWeight(17); doggie.breathe(); doggie.eat("Vittles"); doggie.sleep(); System.out.println("The animal's name is: " + doggie.getName()); System.out.println("The animal's age is: " + doggie.getAge()); System.out.println("The animal's length is: " + doggie.getLength()); Animal kittie = new Animal(1, 23, "Kitty", 5); System.out.println("The second animal's name is " + kittie.getName()); kittie.eat("shrimp"); Fish goldfish = new Fish(1, 2, "Goldie", 1, true); System.out.println("The fish's name is: " + goldfish.getName()); goldfish.setWeight(2); System.out.println("The fish's weight is: " + goldfish.getWeight()); goldfish.getChased(); © 2012 Edureka.in Pvt. Ltd, All rights reserved. 35 Android Development for Beginners Lion leo = new Lion(4, 240, "Leo The Lion", 420); leo.eatPray(); } } Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 36 Android Development for Beginners 2.5 The Static Context Animal.java package edureka.in.android; public class Animal { /* * Private- Accessible only within the class * Public- Accessible within the class and to other classes * Protected- Accessible within the class and to children of the class (subclassess) */ //Properties of Animal //Known as "members" //Instance Member private int age; private int length; private String name; private int weight; public static int numAnimals; public Animal(int age, int length, String name, int weight) { this.age = age; this.length = length; this.name = name; this.weight = weight; numAnimals++; } public Animal() { numAnimals++; } public int getAge() { return age; } public void setAge(int age) { if(age>0){ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 37 Android Development for Beginners this.age = age; } } public int getLength() { return length; } public void setLength(int length) { if(length>0){ this.length = length; } } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getWeight() { return weight; } public void setWeight(int weight) { if(weight >0) { this.weight = weight; } } //Methods public void eat(String food) { System.out.println("Animal is eating " + food); } public void sleep() { System.out.println("Animal is sleeping"); } public void breathe() { System.out.println("Animal is breathing"); } © 2012 Edureka.in Pvt. Ltd, All rights reserved. 38 Android Development for Beginners } Animal_driver.java package edureka.in.android; public class Animal_driver { /** * @param args */ public static void main(String[] args) { Animal doggie = new Animal(); doggie.setName("Rover"); doggie.setAge(3); doggie.setLength(36); doggie.setWeight(17); doggie.breathe(); doggie.eat("Vittles"); doggie.sleep(); System.out.println("The animal's name is: " + doggie.getName()); System.out.println("The animal's age is: " + doggie.getAge()); System.out.println("The animal's length is: " + doggie.getLength()); Animal kittie = new Animal(1, 23, "Kitty", 5); System.out.println("The second animal's name is " + kittie.getName()); kittie.eat("shrimp"); Fish goldfish = new Fish(1, 2, "Goldie", 1, true); System.out.println("The fish's name is: " + goldfish.getName()); goldfish.setWeight(2); System.out.println("The fish's weight is: " + goldfish.getWeight()); goldfish.getChased(); © 2012 Edureka.in Pvt. Ltd, All rights reserved. 39 Android Development for Beginners Lion leo = new Lion(4, 240, "Leo The Lion", 420); leo.eatPray(); System.out.println("You produced " + Animal.numAnimals + " animals"); } } © 2012 Edureka.in Pvt. Ltd, All rights reserved. 40 Android Development for Beginners Chapter 2 Lab Exercise 1. Create the design for an object oriented soda machine. You may use any type of drawing, diagramming, notation or recording system you’d like to create the design-- However do NOT write any Java code. The soda machine must have the following features: It Must Accept Money It Must Make Change if the user inserts more than the price of a soda ($1.50 initially) It Must Allow You (Administrator) Stock the Machine with Soda It Must Allow the User to Choose a Soda After Accepting Money It Must Indicate If a Choice is Out of stock It Must Refund Money Upon Request After a User Has Inserted Money It Must Dispense the Soda After Money is Inserted and Choice is Made It Must Display The Types of Soda Available (Cola, Diet Cola, Lemon-Lime, Diet Lemon-Lime and Root Beer. It must allow you (Administrator) to Your design document should represent the classes needed, fields needed, and the methods of each class. You must use at least two distinct classes for this exercise. Once your design document is complete, you may want to send it to the instructor for comments. This will be the basis of you constructing the classes that you will code in the following steps. 2. Construct the soda machine and related classes based on your design document. If you need to change anything about your design, first map out the change in your design document and then make the change to your code. © 2012 Edureka.in Pvt. Ltd, All rights reserved. 41 Android Development for Beginners 3. Create a driver class that will instantiate your soca machine and related classes. It is through this class that you should allow your soda machine in to interact with the user and administrator. Feel free to send your code to the instructor for feedback or comments. You may also post your solution in the forum to share with others. © 2012 Edureka.in Pvt. Ltd, All rights reserved. 42 Android Development for Beginners Chapter 3: Creating Your First Android Application © 2012 Edureka.in Pvt. Ltd, All rights reserved. 43 Android Development for Beginners 3.1 The Hello World Application HelloWorld.java package edureka.in.android; import android.app.Activity; import android.os.Bundle; public class HelloWorld extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/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="@string/hello" /> </LinearLayout> © 2012 Edureka.in Pvt. Ltd, All rights reserved. 44 Android Development for Beginners Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 45 Android Development for Beginners 3.2 Working with the Emulator Emulator DDMS View © 2012 Edureka.in Pvt. Ltd, All rights reserved. 46 Android Development for Beginners © 2012 Edureka.in Pvt. Ltd, All rights reserved. 47 Android Development for Beginners Emulator Control: Telephony © 2012 Edureka.in Pvt. Ltd, All rights reserved. 48 Android Development for Beginners Emulator Control: Geolocation Logcat Monitoring © 2012 Edureka.in Pvt. Ltd, All rights reserved. 49 Android Development for Beginners Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 50 Android Development for Beginners 3.3 Strings L2pStringsActivity.java package edureka.in.android; import import import import import android.app.Activity; android.os.Bundle; android.view.View; android.widget.Button; android.widget.TextView; public class L2pStringsActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final Button btnPush = (Button)findViewById(R.id.button1); final TextView tv = (TextView)findViewById(R.id.TextView); btnPush.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { tv.setText(R.string.thanks); } }); } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/instruction" © 2012 Edureka.in Pvt. Ltd, All rights reserved. 51 Android Development for Beginners android:id="@+id/TextView"/> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/push_me" /> </LinearLayout> strings.xml <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, L2pStringsActivity!</string> <string name="app_name">L2pStrings</string> <string name="instruction">Please push the button for a big surprise!</string> <string name="push_me">Push Me!</string> <string name="thanks">Thank you for pushing the button</string> </resources> Notes © 2012 Edureka.in Pvt. Ltd, All rights reserved. 52 Android Development for Beginners _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 53 Android Development for Beginners 3.4 Drawables L2pDrawablesActivity.java package edureka.in.android; import import import import import android.app.Activity; android.os.Bundle; android.view.View; android.widget.Button; android.widget.ImageView; public class L2pDrawablesActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final Button pressMe = (Button)findViewById(R.id.buttonShowMark); final ImageView iv = (ImageView)findViewById(R.id.imageViewMark); pressMe.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { iv.setImageResource(R.drawable.mark); } }); } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" © 2012 Edureka.in Pvt. Ltd, All rights reserved. 54 Android Development for Beginners android:text="Drawables" /> <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/logo" android:layout_gravity="center_horizontal"/> <ImageView android:id="@+id/imageViewMark" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal"/> <Button android:id="@+id/buttonShowMark" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="See Mark" /> </LinearLayout> Notes _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 55 Android Development for Beginners _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 56 Android Development for Beginners 3.5 Introducing the Manifest Manifest GUI Manifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.netcomlearning.android" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" /> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <application android:icon="@drawable/ic_launcher" © 2012 Edureka.in Pvt. Ltd, All rights reserved. 57 Android Development for Beginners android:label="@string/app_name" > <activity android:name=".ShowLocationActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 58 Android Development for Beginners 3.6 Understanding the Activity Lifecycle L2pLifeCycleActivity.java package edureka.in.android; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class L2pLifeCycleActivity extends Activity { public static final String TAG = "LIFECYCLE"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.i(TAG, "in onCreate()"); } @Override public void onStart() { super.onStart(); Log.i(TAG, "in onStart()"); } @Override public void onResume() { super.onResume(); Log.i(TAG, "in onResume()"); } @Override public void onRestart() { super.onRestart(); Log.i(TAG, "in onRestart()"); } @Override public void onPause() { Log.i(TAG, "in onPause()"); super.onPause(); © 2012 Edureka.in Pvt. Ltd, All rights reserved. 59 Android Development for Beginners } @Override public void onStop() { Log.i(TAG, "in onStop()"); super.onStop(); } @Override public void onDestroy() { Log.i(TAG, "in onDestroy()"); super.onDestroy(); } } Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 60 Android Development for Beginners Chapter 3 Lab Exercise 1. Create a new Android 2.3.3 Application as demonstrated in the video lecture. 2. Open main.xml in the layout folder and make sure you are in the Graphical Layout mode. Drag three TextView controls on to the application surface. They should appear one on top of another. 3. Make sure they are ID’ed as follows: @+id/TVName @+id/TVEmail @+id/TVPhone 4. Using the properties of the fields you have created populate them with your Name, Email and Phone number. (If you wish you can create String resources in the strings.xml and apply that strong resource to the fields.) 5. Find an image of you and (if necessary) resize it so it appears no more than 100px by 100px. Make sure it is a .png, .jpg or .gif and drag it in to the Drawables folders. (Make sure the filename is all lowercase or an error will occur) 6. Move back to the Graphical Layout mode with main.xml selected. Drag an ImageView object on to the application surface. Give the ImageView the id @+id/IVPictureOfMe. 7. Below the ImageView place a Button. Put the text “Show Picture” on the button. 8. Move to the Java code file and, as demonstrated in the video lecture, write the code to make local references to the Button and image view. (You will use the findViewById() method for this). 9. As demonstrated in the video lecture create a listener on the button reference and code it so the image of you appears when the button is clicked. 10. If you haven’t already created an AVD (Android Virtual Device) create one that is compatible with version 2.3.3 of Android. Test your application and find and correct any errors in your code. © 2012 Edureka.in Pvt. Ltd, All rights reserved. 61 Android Development for Beginners Chapter 4: Creating Listeners © 2012 Edureka.in Pvt. Ltd, All rights reserved. 62 Android Development for Beginners 4.1 Listeners Using an Inner Class L2pListenersActivity.java package edureka.in.android; import import import import import import android.app.Activity; android.os.Bundle; android.view.View; android.view.View.OnClickListener; android.widget.Button; android.widget.TextView; public class L2pListenersActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final Button inner = (Button)findViewById(R.id.buttonInner); final TextView tv = (TextView)findViewById(R.id.textViewResult); inner.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //What does the button do? tv.setText("Thanks for pressing the inner button. ID: " + v.getId()); } }); } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > © 2012 Edureka.in Pvt. Ltd, All rights reserved. 63 Android Development for Beginners <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <TextView android:id="@+id/textViewResult" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" /> <Button android:id="@+id/buttonInner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Inner Class" /> </LinearLayout> Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 64 Android Development for Beginners 4.2 Listeners Using an Interface L2pListenersActivity.java package edureka.in.android; import import import import import import android.app.Activity; android.os.Bundle; android.view.View; android.view.View.OnClickListener; android.widget.Button; android.widget.TextView; public class L2pListenersActivity extends Activity implements OnClickListener { Button interfaceB; Button interfaceB2; TextView tv; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final Button inner = (Button)findViewById(R.id.buttonInner); tv = (TextView)findViewById(R.id.textViewResult); interfaceB = (Button)findViewById(R.id.buttonInterface); interfaceB2 = (Button)findViewById(R.id.buttonInterface2); interfaceB.setOnClickListener(this); interfaceB2.setOnClickListener(this); inner.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //What does the button do? tv.setText("Thanks for pressing the inner button. ID: " + v.getId()); } }); © 2012 Edureka.in Pvt. Ltd, All rights reserved. 65 Android Development for Beginners } @Override public void onClick(View v) { int callerId = v.getId(); switch(callerId) { case R.id.buttonInterface: tv.setText("Thanks for pressing the interface button. ID: " + v.getId()); break; case R.id.buttonInterface2: tv.setText("Thanks for pressing interface Button 2. ID: " + v.getId()); break; default: tv.setText("I don't know what you pushed!"); } } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <TextView android:id="@+id/textViewResult" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" /> <Button android:id="@+id/buttonInner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Inner Class" /> © 2012 Edureka.in Pvt. Ltd, All rights reserved. 66 Android Development for Beginners <Button android:id="@+id/buttonInterface" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Interface" /> <Button android:id="@+id/buttonInterface2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Interface 2" /> </LinearLayout> Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 67 Android Development for Beginners 4.3 Listeners By Variable Name L2pListenersActivity.java package edureka.in.android; import import import import import import android.app.Activity; android.os.Bundle; android.view.View; android.view.View.OnClickListener; android.widget.Button; android.widget.TextView; public class L2pListenersActivity extends Activity implements OnClickListener { Button interfaceB; Button interfaceB2; Button variableB; TextView tv; private OnClickListener myOnClickListener = new OnClickListener() { @Override public void onClick(View v) { tv.setText("Thanks for press the variable button. ID: " + v.getId } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final Button inner = (Button)findViewById(R.id.buttonInner); tv = (TextView)findViewById(R.id.textViewResult); interfaceB = (Button)findViewById(R.id.buttonInterface); interfaceB2 = (Button)findViewById(R.id.buttonInterface2); variableB = (Button)findViewById(R.id.buttonVariable); variableB.setOnClickListener(myOnClickListener); © 2012 Edureka.in Pvt. Ltd, All rights reserved. 68 Android Development for Beginners interfaceB.setOnClickListener(this); interfaceB2.setOnClickListener(this); inner.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //What does the button do? tv.setText("Thanks for pressing the inner button. ID: " + v.getId()); } }); } @Override public void onClick(View v) { int callerId = v.getId(); switch(callerId) { case R.id.buttonInterface: tv.setText("Thanks for pressing the interface button. ID: " + v.getId()); break; case R.id.buttonInterface2: tv.setText("Thanks for pressing interface Button 2. ID: " + v.getId()); break; default: tv.setText("I don't know what you pushed!"); } } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" © 2012 Edureka.in Pvt. Ltd, All rights reserved. 69 Android Development for Beginners android:text="@string/hello" /> <TextView android:id="@+id/textViewResult" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" /> <Button android:id="@+id/buttonInner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Inner Class" /> <Button android:id="@+id/buttonInterface" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Interface" /> <Button android:id="@+id/buttonInterface2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Interface 2" /> <Button android:id="@+id/buttonVariable" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Variable" /> </LinearLayout> Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 70 Android Development for Beginners 4.4 Long Clicks L2pListenersActivity.java package edureka.in.android; import import import import import import import import android.app.Activity; android.os.Bundle; android.view.View; android.view.View.OnClickListener; android.view.View.OnLongClickListener; android.widget.Button; android.widget.TextView; android.widget.Toast; public class L2pListenersActivity extends Activity implements OnClickListener, OnLongClickListener { Button interfaceB; Button interfaceB2; Button variableB; TextView tv; private OnClickListener myOnClickListener = new OnClickListener() { @Override public void onClick(View v) { tv.setText("Thanks for press the variable button. ID: " + v.getId()); } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final Button inner = (Button)findViewById(R.id.buttonInner); tv = (TextView)findViewById(R.id.textViewResult); interfaceB = (Button)findViewById(R.id.buttonInterface); interfaceB2 = (Button)findViewById(R.id.buttonInterface2); variableB = (Button)findViewById(R.id.buttonVariable); © 2012 Edureka.in Pvt. Ltd, All rights reserved. 71 Android Development for Beginners variableB.setOnClickListener(myOnClickListener); interfaceB.setOnClickListener(this); interfaceB2.setOnClickListener(this); interfaceB.setOnLongClickListener(this); interfaceB2.setOnLongClickListener(this); inner.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { Toast.makeText(getApplicationContext(), "Thanks for longclicking inner", Toast.LENGTH_SHORT).show(); return false; } }); inner.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //What does the button do? tv.setText("Thanks for pressing the inner button. ID: " + v.getId()); } }); } @Override public void onClick(View v) { int callerId = v.getId(); switch(callerId) { case R.id.buttonInterface: tv.setText("Thanks for pressing the interface button. ID: " + v.getId()); break; case R.id.buttonInterface2: tv.setText("Thanks for pressing interface Button 2. ID: " + v.getId()); break; default: tv.setText("I don't know what you pushed!"); } } @Override © 2012 Edureka.in Pvt. Ltd, All rights reserved. 72 Android Development for Beginners public boolean onLongClick(View v) { Toast.makeText(getApplicationContext(), "Thanks for long clicking the implements buttons", Toast.LENGTH_SHORT).show(); return false; } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <TextView android:id="@+id/textViewResult" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" /> <Button android:id="@+id/buttonInner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Inner Class" /> <Button android:id="@+id/buttonInterface" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Interface" /> <Button android:id="@+id/buttonInterface2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Interface 2" /> <Button © 2012 Edureka.in Pvt. Ltd, All rights reserved. 73 Android Development for Beginners android:id="@+id/buttonVariable" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Variable" /> </LinearLayout> Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 74 Android Development for Beginners 4.5 Keyboard Listeners L2pKeyboardListenersActivity.java package edureka.in.android; import import import import import import import android.app.Activity; android.os.Bundle; android.view.KeyEvent; android.view.View; android.view.View.OnKeyListener; android.widget.EditText; android.widget.TextView; public class L2pKeyboardListenersActivity extends Activity { EditText userEntry; TextView tvResult; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); userEntry = (EditText)findViewById(R.id.editTextUserEntry); tvResult= (TextView)findViewById(R.id.textResult); userEntry.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if(event.getAction() == KeyEvent.ACTION_DOWN) { if(keyCode == KeyEvent.KEYCODE_ENTER) { tvResult.setText(userEntry.getText()); } } return false; © 2012 Edureka.in Pvt. Ltd, All rights reserved. 75 Android Development for Beginners } }); } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/textResult"/> <EditText android:id="@+id/editTextUserEntry" android:layout_width="match_parent" android:layout_height="wrap_content" > <requestFocus /> </EditText> </LinearLayout> Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 76 Android Development for Beginners Chapter 4 Lab Exercise 1. Create a new Android 2.3.3 Application as demonstrated in the video lecture. 2. Open the main.xml file and drag a TextView on to the application surface. Below the TextView drag three buttons. Make the text label on the first button say “Inner Class.” Label the second Text button “Interface” and the third button “Variable.” 3. Switch to the Java code. Write the necessary code to give each button a local reference via findElementById(). Give the text view a local reference as well 4. On the button labeled “Inner Class” create a listener and call back function via an inner class as demonstrated in the video lecture. When the button is clicked, the words “Listener via Inner Class” should appear in the TextView. 5. On the button labeled “Interface” create a listener and call back function via an interface as demonstrated in the video lecture. When the button is clicked, the words “Listener via Interface” should appear in the TextView. Don’t forget to “extend” your activity class with the appropriate interface. 6. On the button labeled “Variable” create a listener and call back function via a variable as demonstrated in the video lecture. When the button is clicked, the words “Listener via Variable” should appear in the TextView. 7. On each button implement a long click listener. Use the method that is labeled on the button to respond to the long click. Make the messages in the Text box “Long Click via inner class”, “Long Click via interface”, and “Long click via variable.” 8. Below the third button add an EditText field in the main.xml file. Create a local reference in the Java file. © 2012 Edureka.in Pvt. Ltd, All rights reserved. 77 Android Development for Beginners 9. As demonstrated in lecture, create a listener on the EditText so that when the user types a character, it appears the existing TextView clears and echos the character(s) in the EditText. © 2012 Edureka.in Pvt. Ltd, All rights reserved. 78 Android Development for Beginners Chapter 5: Understanding Android View Containers © 2012 Edureka.in Pvt. Ltd, All rights reserved. 79 Android Development for Beginners 5.1 Linear Layout L2pLinearLayoutActivity.java package edureka.in.android; import android.app.Activity; import android.os.Bundle; public class L2pLinearLayoutActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:gravity="center_vertical"> <TextView android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="White" android:textAppearance="?android:attr/textAppearanceLarge" android:background="@color/White" android:textColor="#000000" android:gravity="center_horizontal" android:layout_weight=".5"/> <TextView android:id="@+id/textView2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Green" © 2012 Edureka.in Pvt. Ltd, All rights reserved. 80 Android Development for Beginners android:textAppearance="?android:attr/textAppearanceLarge" android:background="@color/Green" android:gravity="center_horizontal" android:layout_weight=".16"/> <TextView android:id="@+id/textView3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Yellow" android:textAppearance="?android:attr/textAppearanceLarge" android:background="@color/Yellow" android:textColor="#000000" android:gravity="center_horizontal" android:layout_weight=".16"/> <TextView android:id="@+id/textView4" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Red" android:textAppearance="?android:attr/textAppearanceLarge" android:background="@color/Red" android:gravity="center_horizontal" android:layout_weight=".16"/> </LinearLayout> colors.xml <?xml version="1.0" encoding="utf-8"?> <resources> <color name="White">#FFFFFF</color> <color name="Green">#00FF00</color> <color name="Red">#FF0000</color> <color name="Yellow">#FFFF00</color> </resources> © 2012 Edureka.in Pvt. Ltd, All rights reserved. 81 Android Development for Beginners Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 82 Android Development for Beginners 5.2 Relative Layout L2pRelativeLayoutActivity.java package edureka.in.android; import android.app.Activity; import android.os.Bundle; public class L2pRelativeLayoutActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/wrapperLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" > <RelativeLayout android:id="@+id/relativeLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="3dp"> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:text="User Name:" /> <EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignLeft="@+id/textView1" android:layout_below="@+id/textView1" > </EditText> © 2012 Edureka.in Pvt. Ltd, All rights reserved. 83 Android Development for Beginners <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/editText1" android:layout_below="@+id/editText1" android:text="Passoword" /> <EditText android:id="@+id/editText2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignLeft="@+id/editText1" android:layout_below="@+id/textView2" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_below="@+id/editText2" android:text="Submit" /> </RelativeLayout> </LinearLayout> © 2012 Edureka.in Pvt. Ltd, All rights reserved. 84 Android Development for Beginners Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 85 Android Development for Beginners 5.3 Table Layout L2pTableLayoutActivity package edureka.in.android; import android.app.Activity; import android.os.Bundle; public class L2pTableLayoutActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Cats of The World" /> <TableLayout android:layout_width="fill_parent" android:layout_height="wrap_content"> <TableRow> <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/cat1" /> <ImageView android:id="@+id/imageView2" android:layout_width="wrap_content" android:layout_height="wrap_content" © 2012 Edureka.in Pvt. Ltd, All rights reserved. 86 Android Development for Beginners android:src="@drawable/cat2" /> <ImageView android:id="@+id/imageView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/cat1" /> <ImageView android:id="@+id/imageView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/cat5" /> </TableRow> <TableRow> <ImageView android:layout_column="1" android:id="@+id/imageView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/cat4" /> <ImageView android:layout_column="3" android:id="@+id/imageView6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/cat6" /> </TableRow> <TableRow> <ImageView android:id="@+id/imageView7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/cat7" /> <ImageView android:id="@+id/imageView8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/cat8" /> © 2012 Edureka.in Pvt. Ltd, All rights reserved. 87 Android Development for Beginners <ImageView android:id="@+id/imageView9" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/cat9" /> </TableRow> </TableLayout> </LinearLayout> Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 88 Android Development for Beginners 5.4 List View L2pListViewActivity.java package edureka.in.android; import import import import import import import import android.app.Activity; android.os.Bundle; android.view.View; android.widget.AdapterView; android.widget.AdapterView.OnItemClickListener; android.widget.ArrayAdapter; android.widget.ListView; android.widget.Toast; public class L2pListViewActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ListView bandList = (ListView)findViewById(R.id.bandList); final String[] bands = new String[] { "Journey", "Reo Speedwagon", "Heart", "Styx", "Foreigner", "Kansas", "Cheap Trick", "Kiss" }; ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, bands); bandList.setAdapter(adapter); bandList.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { © 2012 Edureka.in Pvt. Ltd, All rights reserved. 89 Android Development for Beginners Toast.makeText(getApplicationContext(), bands[position], Toast.LENGTH_SHORT).show(); } }); } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ListView android:id="@+id/bandList" android:layout_width="match_parent" android:layout_height="fill_parent" /> </LinearLayout> Notes © 2012 Edureka.in Pvt. Ltd, All rights reserved. 90 Android Development for Beginners _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 91 Android Development for Beginners Chapter 5 Lab Exercise 1. Create a new Android 2.3.3 Application as demonstrated in the video lecture. 2. As demonstrated in the video lecture add a ListView to the interface and make a local reference in the Java code. 3. Create a String array called months of the year and populate with the names of the months. 4. Create an ArrayAdapter object called adapter that uses the simple_list_item_I layout and uses your months array as a data source. 5. Associate the adapter with your ListView reference as demonstrated in the video lecture. 6. Implement a click listener on the ListView so that a Toast appears with each click indicating the name of the month clicked. © 2012 Edureka.in Pvt. Ltd, All rights reserved. 92 Android Development for Beginners Chapter 6: Android Widgets Part I © 2012 Edureka.in Pvt. Ltd, All rights reserved. 93 Android Development for Beginners 6.1 Custom Buttons L2pCustomButton.java package edureka.in.android; import import import import import android.app.Activity; android.os.Bundle; android.view.View; android.widget.Button; android.widget.Toast; public class L2pCustomButtonActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final Button button = (Button)findViewById(R.id.button1); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getApplicationContext(), "You pressed the custom button!", Toast.LENGTH_SHORT).show(); } }); } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/custom_button"/> </LinearLayout> © 2012 Edureka.in Pvt. Ltd, All rights reserved. 94 Android Development for Beginners custom_button.xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable ="@drawable/button_one" android:state_pressed="true" /> <item android:drawable = "@drawable/button_two" /> </selector> Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 95 Android Development for Beginners 6.2 Toggle Buttons L2pToggleButtonsActivity.java package edureka.in.android; import import import import import import android.app.Activity; android.os.Bundle; android.view.View; android.widget.Button; android.widget.Toast; android.widget.ToggleButton; public class L2pToggleButtonsActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final ToggleButton toggleOne = (ToggleButton)findViewById(R.id.toggleButtonEngineOne); final ToggleButton toggleTwo = (ToggleButton)findViewById(R.id.toggleButtonEngineTwo); final Button statusButton = (Button)findViewById(R.id.buttonCheckEngineStatus); statusButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(toggleOne.isChecked() && toggleTwo.isChecked()) { Toast.makeText(getApplicationContext(), "Both Engines are running", Toast.LENGTH_SHORT).show(); } else { if(toggleOne.isChecked()) { Toast.makeText(getApplicationContext(), "Engine One is running", Toast.LENGTH_SHORT).show(); } else { © 2012 Edureka.in Pvt. Ltd, All rights reserved. 96 Android Development for Beginners if(toggleTwo.isChecked()) { Toast.makeText(getApplicationContext(), "Engine Two is running", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getApplicationContext(), "Neither engine is running", Toast.LENGTH_SHORT).show(); } } } } }); } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Start Your Engines!" /> <LinearLayout android:id="@+id/linearLayout1" android:layout_width="match_parent" android:layout_height="wrap_content" > <ToggleButton android:id="@+id/toggleButtonEngineOne" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ToggleButton" /> <ToggleButton android:id="@+id/toggleButtonEngineTwo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ToggleButton" /> © 2012 Edureka.in Pvt. Ltd, All rights reserved. 97 Android Development for Beginners </LinearLayout> <Button android:id="@+id/buttonCheckEngineStatus" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Check Engine Status" /> </LinearLayout> Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 98 Android Development for Beginners 6.3 Checkboxes and Radio Buttons L2pCheckAndRadioActivity.java package edureka.in.android; import import import import import import import android.app.Activity; android.os.Bundle; android.view.View; android.widget.Button; android.widget.CheckBox; android.widget.RadioButton; android.widget.Toast; public class L2pCheckAndRadioActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final CheckBox chkApt = (CheckBox)findViewById(R.id.checkBox1); final CheckBox chkSalad = (CheckBox)findViewById(R.id.checkBox2); final CheckBox chkEntree = (CheckBox)findViewById(R.id.checkBox3); final CheckBox chkDessert= (CheckBox)findViewById(R.id.checkBox4); final RadioButton radioRare = (RadioButton)findViewById(R.id.radioButtonRare); final RadioButton radioMedium = (RadioButton)findViewById(R.id.radioMedium); final RadioButton radioWell = (RadioButton)findViewById(R.id.radioButtonWell); final Button btnPlaceOrder = (Button)findViewById(R.id.button1); btnPlaceOrder.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String order =""; if(chkApt.isChecked()) © 2012 Edureka.in Pvt. Ltd, All rights reserved. 99 Android Development for Beginners { order += chkApt.getText(); } if(chkSalad.isChecked()) { order+= chkSalad.getText(); } if(chkEntree.isChecked()) { order += chkEntree.getText(); } if(chkDessert.isChecked()) { order += chkDessert.getText(); } if(radioRare.isChecked()) { order += " " + radioRare.getText(); } else if(radioMedium.isChecked()) { order += " " + radioMedium.getText(); } else { order += " " + radioWell.getText(); } Toast.makeText(getApplicationContext(), order, Toast.LENGTH_SHORT).show(); } }); } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" © 2012 Edureka.in Pvt. Ltd, All rights reserved. 100 Android Development for Beginners android:text="Please check all that apply" /> <CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Appetizer" /> <CheckBox android:id="@+id/checkBox2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Salad" /> <CheckBox android:id="@+id/checkBox3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Entree" /> <CheckBox android:id="@+id/checkBox4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Dessert" /> <RadioGroup android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <RadioButton android:id="@+id/radioButtonRare" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Rare" /> <RadioButton android:id="@+id/radioMedium" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Medium" /> <RadioButton android:id="@+id/radioButtonWell" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Well Done" /> © 2012 Edureka.in Pvt. Ltd, All rights reserved. 101 Android Development for Beginners </RadioGroup> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Place Order" /> </LinearLayout> Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 102 Android Development for Beginners 6.4 Spinners L2pSpinnerActivity.java package edureka.in.android; import import import import import import import import android.app.Activity; android.os.Bundle; android.view.View; android.widget.AdapterView; android.widget.AdapterView.OnItemSelectedListener; android.widget.ArrayAdapter; android.widget.Spinner; android.widget.Toast; public class L2pSpinnerActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final String[] cities = { "New York", "Chicago", "Denver", "Las Vegas", "Detroit", "Hartford", "Los Angeles", "Paris" }; Spinner citySpinner = (Spinner)findViewById(R.id.spinnerCities); ArrayAdapter<String> as = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, cities); citySpinner.setAdapter(as); citySpinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> © 2012 Edureka.in Pvt. Ltd, All rights reserved. 103 Android Development for Beginners parent, View view, int position, long id) { Toast.makeText(getApplicationContext(), cities[position], Toast.LENGTH_SHORT).show(); } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }); } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Spinner android:id="@+id/spinnerCities" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> © 2012 Edureka.in Pvt. Ltd, All rights reserved. 104 Android Development for Beginners Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 105 Android Development for Beginners Chapter 6 Lab Exercise 1. Create a new Android 2.3.3 Application as demonstrated in the video lecture. 2. Download and import the supplied starter project into Eclipse. You may do so by clicking the File Menu and Import. Choose from the General Folder either Existing Projects Into WorkSpace (for unzipped files) or Archive Files (for zipped files). Select either the root directory or archive file from the next screen as appropriate and import the project. 3. Open your main.xml and notice that a layout has already been provided for you: 4. Add a button below the spinner that has the text label “Report.” 5. Change the id properties of all of the widgets so that they are more specific. © 2012 Edureka.in Pvt. Ltd, All rights reserved. 106 Android Development for Beginners 6. Create the necessary Array and Array adapter objects to populate the spinner with the names of your five favorite bands or artists. 7. Place a listener on the button you added. When the button is clicked a “report” is created in a Toast. The report should report the status of each of the widgets when the user pressed the button. For example “Fun Button: On, Things I Like To Do: Eat, Be Merry, Gender: Male, Band: Journey.” (You may have to add additional code to make this work smoothly.) 8. Compile and test on your emulator. Debug until all is working correctly. Make sure you test each widget thoroughly. © 2012 Edureka.in Pvt. Ltd, All rights reserved. 107 Android Development for Beginners Chapter 7: Android Widgets Part II © 2012 Edureka.in Pvt. Ltd, All rights reserved. 108 Android Development for Beginners 7.1 Autocomplete Text Box L2pAutoCompleteTextViewActivity.java package edureka.in.android; import import import import android.app.Activity; android.os.Bundle; android.widget.ArrayAdapter; android.widget.AutoCompleteTextView; public class L2pAutoCompleteTextViewActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); AutoCompleteTextView acStates = (AutoCompleteTextView)findViewById(R.id.autoCompleteStates); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line , States.states); acStates.setAdapter(adapter); } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Enter Your State" /> <AutoCompleteTextView android:id="@+id/autoCompleteStates" © 2012 Edureka.in Pvt. Ltd, All rights reserved. 109 Android Development for Beginners android:layout_width="match_parent" android:layout_height="wrap_content" > <requestFocus /> </AutoCompleteTextView> </LinearLayout> Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 110 Android Development for Beginners 7.2 Map View L2pMapsActivity.java package edureka.in.android; import com.google.android.maps.MapActivity; import com.google.android.maps.MapView; import android.app.Activity; import android.os.Bundle; public class L2pMapsActivity extends MapActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); MapView map = (MapView)findViewById(R.id.mapview); map.setBuiltInZoomControls(true); } @Override protected boolean isRouteDisplayed() { // TODO Auto-generated method stub return false; } } main.xml <?xml version="1.0" encoding="utf-8"?> <com.google.android.maps.MapView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mapview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" android:apiKey ="0ckU7Ceq-V9UGSl1-zeLDY85oMxM8bE4Cy2Fukw" /> Notes _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 111 Android Development for Beginners _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 112 Android Development for Beginners 7.3 Web Views L2pWebViewActivity.java package edureka.in.android; import android.app.Activity; import android.os.Bundle; import android.webkit.WebView; public class L2pWebViewActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String content = "<html lang='en'><head><title>HTML Displayed on Android</title></head><body><h1>Edureka.in</h1><img src='http://www.edureka.in/wpcontent/themes/learntoprogrametv102/images/learnto.png' /><p>Your Android device can display HTML code in the WebView control.</p></body></html>"; WebView view = new WebView(this); setContentView(view); //view.loadUrl("http://www.edureka.in"); view.loadData(content, "text/html", null); } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout> © 2012 Edureka.in Pvt. Ltd, All rights reserved. 113 Android Development for Beginners Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 114 Android Development for Beginners 7.4 Time and Date Pickers L2pDateAndTimeActivity.java package edureka.in.android; import import import import import import import import import import android.app.Activity; android.app.DatePickerDialog; android.app.Dialog; android.app.TimePickerDialog; android.os.Bundle; android.view.View; android.widget.Button; android.widget.DatePicker; android.widget.TextView; android.widget.TimePicker; public class L2pDateAndTimeActivity extends Activity { static final int DATE_DIALOG_ID = 0; static final int TIME_DIALOG_ID = 1; TextView tvDateDisplay; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button dateClick = (Button)findViewById(R.id.buttonSetDate); tvDateDisplay = (TextView)findViewById(R.id.textViewDateDisplay); Button timeClick = (Button)findViewById(R.id.buttonSetTime); timeClick.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showDialog(TIME_DIALOG_ID); } }); © 2012 Edureka.in Pvt. Ltd, All rights reserved. 115 Android Development for Beginners dateClick.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showDialog(DATE_DIALOG_ID); } }); } @Override protected Dialog onCreateDialog(int id) { if(id == 0) { return new DatePickerDialog(this, dateCallBack, 1990, 0, 1); } if(id==1) { return new TimePickerDialog(this, timeCallBack,12, 00, false); } return null; } private TimePickerDialog.OnTimeSetListener timeCallBack = new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { String timeString = hourOfDay + ":" + minute; tvDateDisplay.setText(timeString); } }; private DatePickerDialog.OnDateSetListener dateCallBack = new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, © 2012 Edureka.in Pvt. Ltd, All rights reserved. 116 Android Development for Beginners int dayOfMonth) { String dateString = (monthOfYear +1) + "/" + dayOfMonth + "/" + year; tvDateDisplay.setText(dateString); } }; } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/textViewDateDisplay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Enter Your Birthdate" android:textAppearance="?android:attr/textAppearanceLarge" /> <Button android:id="@+id/buttonSetDate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Enter Birthday" /> <Button android:id="@+id/buttonSetTime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Set the Time" /> </LinearLayout> © 2012 Edureka.in Pvt. Ltd, All rights reserved. 117 Android Development for Beginners Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 118 Android Development for Beginners Chapter 7 Lab Exercise 1. Create a new Android 2.3.3 Application as demonstrated in the lecture. 2. Create an autocomplete box, as demonstrated in lecture, that is designed to capture the name of a state. You may use the list of states for your array at: http:// state.1keydata.com/. 3. Below the autocomplete text box drag a date picker on to the user interface. Below the date picker place a button. 4. Below the button create a TextView object. 5. Write Java code so that when the button is clicked the TextView will display the name of the state displayed in the autocomplete box and the date indicated on the date picker object. © 2012 Edureka.in Pvt. Ltd, All rights reserved. 119 Android Development for Beginners Chapter 8: Communicating Between Activities © 2012 Edureka.in Pvt. Ltd, All rights reserved. 120 Android Development for Beginners 8.1 Switching Activities L2pSwitchingActivitiesActivity.java package edureka.in.android; import import import import import android.app.Activity; android.content.Intent; android.os.Bundle; android.view.View; android.widget.Button; public class L2pSwitchingActivitiesActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn = (Button)findViewById(R.id.btnSwitch); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent myIntent = new Intent(getApplicationContext(), SecondActivity.class); startActivity(myIntent); } }); } } SecondActivity.java package edureka.in.android; import android.app.Activity; import android.os.Bundle; public class SecondActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second); © 2012 Edureka.in Pvt. Ltd, All rights reserved. 121 Android Development for Beginners // TODO Auto-generated method stub } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:id="@+id/btnSwitch" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Change To Second Activity" /> </LinearLayout> second.xml © 2012 Edureka.in Pvt. Ltd, All rights reserved. 122 Android Development for Beginners <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Welcome to the Second Activity" android:textAppearance="?android:attr/textAppearanceLarge" /> </LinearLayout> Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 123 Android Development for Beginners _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 124 Android Development for Beginners 8.2 Putting Extra L2pPutExtraActivity.java package edureka.in.android; import import import import import import android.app.Activity; android.content.Intent; android.os.Bundle; android.view.View; android.widget.Button; android.widget.EditText; public class L2pPutExtraActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final EditText et = (EditText)findViewById(R.id.etDogAge); Button btn = (Button)findViewById(R.id.btnCalculate); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int dogAge = Integer.parseInt(et.getText().toString()); Intent myIntent = new Intent(getApplicationContext(), dogAgeActivity.class); myIntent.putExtra("dogsage", dogAge); startActivity(myIntent); } }); } } dogAgeActivity.java package edureka.in.android; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; © 2012 Edureka.in Pvt. Ltd, All rights reserved. 125 Android Development for Beginners public class dogAgeActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dogageactivity); Bundle extras = getIntent().getExtras(); int dogAge = extras.getInt("dogsage"); TextView tv = (TextView)findViewById(R.id.tvResult); dogAge = dogAge * 7; tv.setText("In dog years, your dog is: " + dogAge); // TODO Auto-generated method stub } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/query" /> <EditText android:id="@+id/etDogAge" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="number" > <requestFocus /> </EditText> <Button android:id="@+id/btnCalculate" android:layout_width="wrap_content" android:layout_height="wrap_content" © 2012 Edureka.in Pvt. Ltd, All rights reserved. 126 Android Development for Beginners android:text="Age in Dog Years" android:layout_gravity="right"/> </LinearLayout> dogageactivity.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/tvResult" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" /> </LinearLayout> © 2012 Edureka.in Pvt. Ltd, All rights reserved. 127 Android Development for Beginners Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 128 Android Development for Beginners 8.3 Using Shared Preferences L2pSharedPreferencesActivity.java package edureka.in.android; import import import import import import import android.app.Activity; android.content.Intent; android.content.SharedPreferences; android.os.Bundle; android.view.View; android.widget.Button; android.widget.EditText; public class L2pSharedPreferencesActivity extends Activity { public static final String PREFS_NAME = "MyPreferencesFile"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final EditText name = (EditText)findViewById(R.id.editText1); final EditText email = (EditText)findViewById(R.id.editText2); Button btn = (Button)findViewById(R.id.btnSavePreferences); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); SharedPreferences.Editor editor = settings.edit(); editor.putString("name", name.getText().toString()); editor.putString("email", email.getText().toString()); © 2012 Edureka.in Pvt. Ltd, All rights reserved. 129 Android Development for Beginners editor.commit(); Intent intent = new Intent(getApplicationContext(), second.class); startActivity(intent); } }); } } second.java package edureka.in.android; import import import import android.app.Activity; android.content.SharedPreferences; android.os.Bundle; android.widget.TextView; public class second extends Activity { public static final String PREFS_NAME = "MyPreferencesFile"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second); TextView tvName = (TextView)findViewById(R.id.textViewName); TextView tvEmail = (TextView)findViewById(R.id.textViewEmail); SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); tvName.setText(settings.getString("name", "Eddie")); tvEmail.setText(settings.getString("email", "[email protected]")); // TODO Auto-generated method stub } } main.xml © 2012 Edureka.in Pvt. Ltd, All rights reserved. 130 Android Development for Beginners <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Name" /> <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" > <requestFocus /> </EditText> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Email Address" /> <EditText android:id="@+id/editText2" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/btnSavePreferences" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Save Preferences" /> </LinearLayout> © 2012 Edureka.in Pvt. Ltd, All rights reserved. 131 Android Development for Beginners second.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/textViewName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Large Text" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/textViewEmail" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Large Text" android:textAppearance="?android:attr/textAppearanceLarge" /> </LinearLayout> © 2012 Edureka.in Pvt. Ltd, All rights reserved. 132 Android Development for Beginners Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 133 Android Development for Beginners Chapter 8 Lab Exercise 1. Create a new Android 2.3.3 Application as demonstrated in the video lecture. 2. Create a UI where the user can enter their first name, last name and email address in three EditText controls. 3. Place a button at the bottom of the UI labeled Next. 4. Write Java code so that when the button is pressed the first and last name and email address are passed to a second activity using putExtra(). 5. Create a second activity, with a separate xml file for the layout which displays the first and last name and email address entered in activity one. 6. Place another next button at the bottom of the activity two interface. Code the callback function for the button so that the information passed from Activity one is stored in a SharedPreferences Object and passed to the third activity. 7. Create a third activity so that the SharedPrefences object is retrieved and the information is displayed yet again. 8. Place a button that returns the user to the original activity and allows them to fill out first name, last name and email address again. © 2012 Edureka.in Pvt. Ltd, All rights reserved. 134 Android Development for Beginners Chapter 9: Storing Information on the Device © 2012 Edureka.in Pvt. Ltd, All rights reserved. 135 Android Development for Beginners 9.1 Internal Storage L2pInternalStorageActivity.java package edureka.in.android; import import import import import import java.io.BufferedReader; java.io.BufferedWriter; java.io.FileNotFoundException; java.io.IOException; java.io.InputStreamReader; java.io.OutputStreamWriter; import import import import import import android.app.Activity; android.os.Bundle; android.view.View; android.widget.Button; android.widget.EditText; android.widget.TextView; public class L2pInternalStorageActivity extends Activity { /** Called when the activity is first created. */ TextView tvName; TextView tvNumber; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final EditText etName = (EditText)findViewById(R.id.etUserName); final EditText etNumber = (EditText)findViewById(R.id.editText2); final Button btnSave = (Button)findViewById(R.id.btnSave); tvName = (TextView)findViewById(R.id.tvUserName); tvNumber = (TextView)findViewById(R.id.tvUserNumber); readTheFile(); btnSave.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { © 2012 Edureka.in Pvt. Ltd, All rights reserved. 136 Android Development for Beginners //Get info out of text boxes String name = etName.getText().toString(); String number = etNumber.getText().toString(); String eol = System.getProperty("line.separator"); BufferedWriter writer = null; try { writer = new BufferedWriter(new OutputStreamWriter(openFileOutput("userInformation", MODE_WORLD_WRITEABLE))); writer.write(name + eol); writer.write(number + eol); writer.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); } private void readTheFile() { String eol = System.getProperty("line.separator"); BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader(openFileInput("userInformation"))); String line; int counter =0; while((line = reader.readLine())!=null) { if(counter==0) { tvName.setText(line); counter++; } else { tvNumber.setText(line); } } © 2012 Edureka.in Pvt. Ltd, All rights reserved. 137 Android Development for Beginners } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Name:" /> <EditText android:id="@+id/etUserName" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPersonName" > <requestFocus /> </EditText> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Phone Number:" /> <EditText android:id="@+id/editText2" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPostalAddress" /> <Button android:id="@+id/btnSave" © 2012 Edureka.in Pvt. Ltd, All rights reserved. 138 Android Development for Beginners android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Save Information" /> <TextView android:id="@+id/tvUserName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/tvUserNumber" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout> Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 139 Android Development for Beginners _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 140 Android Development for Beginners 9.2 External Storage L2pExternalStorgageActivity.java package edureka.in.android; import import import import import import import java.io.BufferedReader; java.io.BufferedWriter; java.io.File; java.io.FileNotFoundException; java.io.FileReader; java.io.FileWriter; java.io.IOException; import import import import import import import android.app.Activity; android.os.Bundle; android.os.Environment; android.view.View; android.widget.Button; android.widget.EditText; android.widget.TextView; public class L2pExternalStorageActivity extends Activity { /** Called when the activity is first created. */ TextView tvName; TextView tvNumber; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final EditText etName = (EditText)findViewById(R.id.etUserName); final EditText etNumber = (EditText)findViewById(R.id.editText2); final Button btnSave = (Button)findViewById(R.id.btnSave); tvName = (TextView)findViewById(R.id.tvUserName); tvNumber = (TextView)findViewById(R.id.tvUserNumber); readTheFile(); btnSave.setOnClickListener(new View.OnClickListener() { @Override © 2012 Edureka.in Pvt. Ltd, All rights reserved. 141 Android Development for Beginners public void onClick(View v) { //Get info out of text boxes String name = etName.getText().toString(); String number = etNumber.getText().toString(); String eol = System.getProperty("line.separator"); File information = Environment.getExternalStorageDirectory(); if(information.canWrite()) { File userInfoFile = new File(information, "userInfo.txt"); try { FileWriter filewriter =new FileWriter(userInfoFile); BufferedWriter out = new BufferedWriter(filewriter); out.write(name + eol); out.write(number + eol); out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }); } private void readTheFile() { String eol = System.getProperty("line.separator"); File directory = Environment.getExternalStorageDirectory(); File file = new File(directory + "/userInfo.txt"); if(!file.exists()) { throw new RuntimeException("File Not Found"); } BufferedReader reader = null; try { reader = new BufferedReader(new FileReader(file)); String line; © 2012 Edureka.in Pvt. Ltd, All rights reserved. 142 Android Development for Beginners int counter =0; while((line = reader.readLine()) != null) { if(counter==0) { tvName.setText(line); counter++; } else { tvNumber.setText(line); } } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Name:" /> <EditText android:id="@+id/etUserName" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPersonName" > <requestFocus /> </EditText> © 2012 Edureka.in Pvt. Ltd, All rights reserved. 143 Android Development for Beginners <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Phone Number:" /> <EditText android:id="@+id/editText2" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPostalAddress" /> <Button android:id="@+id/btnSave" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Save Information" /> <TextView android:id="@+id/tvUserName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/tvUserNumber" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout> Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 144 Android Development for Beginners 9.3 Web Communication and Storage L2pSimpleWebServiceActivity.java package edureka.in.android; import import import import import import java.io.BufferedInputStream; java.io.IOException; java.io.InputStream; java.net.MalformedURLException; java.net.URL; java.net.URLConnection; import org.apache.http.util.ByteArrayBuffer; import import import import import import android.app.Activity; android.os.Bundle; android.util.Log; android.view.View; android.webkit.WebView; android.widget.Button; public class L2pSimpleWebServiceActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final Button btnGetScores = (Button)findViewById(R.id.btnGetScores); final WebView displayScores = (WebView)findViewById(R.id.wvScores); btnGetScores.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { URL myURL = new URL("http://www.edureka.in/baseball.php"); URLConnection ucon = myURL.openConnection(); InputStream is = ucon.getInputStream(); BufferedInputStream bis = new © 2012 Edureka.in Pvt. Ltd, All rights reserved. 145 Android Development for Beginners BufferedInputStream(is); ByteArrayBuffer baf = new ByteArrayBuffer(50); int current =0; while((current = bis.read()) != -1) { baf.append((byte)current); } String myString = new String(baf.toByteArray()); displayScores.loadData(myString, "text/html", null); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Fake Baseball Scores" /> <WebView android:id="@+id/wvScores" android:layout_width="match_parent" android:layout_height="305dp" /> © 2012 Edureka.in Pvt. Ltd, All rights reserved. 146 Android Development for Beginners <Button android:id="@+id/btnGetScores" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Get Scores" /> </LinearLayout> Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 147 Android Development for Beginners Chapter 9 Lab Exercise 1. Create a new Android 2.3.3 Application as demonstrated in the video lecture. 2. Create a user interface that contains two EditTexts for the user to enter their first and last name. Create a custom spinner in which they can indicate which model of car they drive. (You can populate the spinner with as many car makes as you’d like). 3. Create two buttons below the spinner-- the first button should be labeled “internal” and the second button labeled “external” 4. Code the buttons so that the information entered by the user is saved to internal or external storage as appropriate. 5. Test and in DDMS mode download the files stored and insure they look correct in a text editor. 6. Create a second activity that loads the data from external storage and displays it in three separate TextView. Test this activity as well. © 2012 Edureka.in Pvt. Ltd, All rights reserved. 148 Android Development for Beginners Chapter 10: Audio and Video © 2012 Edureka.in Pvt. Ltd, All rights reserved. 149 Android Development for Beginners 10.1 Playing Audio with the MediaPlayer package edureka.in.android; import import import import import import android.app.Activity; android.media.MediaPlayer; android.os.Bundle; android.view.View; android.view.View.OnClickListener; android.widget.Button; public class L2pAudioPlayerActivity extends Activity implements OnClickListener { /** Called when the activity is first created. */ MediaPlayer mp; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button play = (Button)findViewById(R.id.buttonPlay); Button pause = (Button)findViewById(R.id.buttonPause); Button stop = (Button)findViewById(R.id.buttonStop); play.setOnClickListener(this); pause.setOnClickListener(this); stop.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.buttonPlay: mp = MediaPlayer.create(this, R.raw.journey); mp.start(); break; case R.id.buttonPause: mp.pause(); break; case R.id.buttonStop: mp.stop(); © 2012 Edureka.in Pvt. Ltd, All rights reserved. 150 Android Development for Beginners } } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <LinearLayout android:id="@+id/linearLayout1" android:layout_width="match_parent" android:layout_height="wrap_content" > <Button android:id="@+id/buttonPlay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Play" /> <Button android:id="@+id/buttonStop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Stop" /> <Button android:id="@+id/buttonPause" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Pause" /> </LinearLayout> </LinearLayout> © 2012 Edureka.in Pvt. Ltd, All rights reserved. 151 Android Development for Beginners Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 152 Android Development for Beginners 10.2 Playing Video with the MediaPlayer L2pVideoViewActivity.java package edureka.in.android; import import import import import android.app.Activity; android.net.Uri; android.os.Bundle; android.widget.MediaController; android.widget.VideoView; public class L2pVideoViewActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); VideoView vv = (VideoView)findViewById(R.id.vv); Uri path = Uri.parse("android.resource://edureka.in.android/" + R.raw.america); vv.setVideoURI(path); vv.setMediaController(new MediaController(this)); vv.requestFocus(); vv.start(); } } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Watch a Video" /> <VideoView android:id = "@+id/vv" android:layout_width="fill_parent" android:layout_height="wrap_content" © 2012 Edureka.in Pvt. Ltd, All rights reserved. 153 Android Development for Beginners /> </LinearLayout> Notes _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ _____________________________________________________________ © 2012 Edureka.in Pvt. Ltd, All rights reserved. 154 Android Development for Beginners Chapter 10 Lab Exercise 1. Create a new Android 2.3.3 Application as demonstrated in the video lecture. 2. Write Javascript code to play your favorite song using MediaPlayer. 3. Test the code in your emulator, sit back and enjoy. 4. Reward yourself with your favorite treat and relax: You have completed the course. Congratulations! © 2012 Edureka.in Pvt. Ltd, All rights reserved. 155
Similar documents
STAGE I-Draft0909
142Campbell-STAGEI.pln; 07 Framing Plans - Ground Flooor; 100%; 9/09/2008 4:36 p.m.
More information