Hello World
• Follow steps under the sections Create an AVD and Create a New Android Project at http://developer.android.com/resources/tutorials/hello-world.html
– Don’t do anything under the section Construct the UI
• Alternatively, you can do the step Construct the UI. But then, redo the Create an AVD and Create a New Android Project.
– After Creating the AVD, start the AVD
• In eclipse, menu Window -> Android SDK and AVD Manager.
• Select the emulator, and then select start
• It takes quite a long time for the emulator to start
• Run on emulator
– Click on menu “Run”
– There is a green arrow on the toolbar that will also start
– If an emulator is not running and there is no device, the emulator will start (assuming that one is defined)
• (Be sure that the emulator is unlocked. It will lock like your phone if idle for a while)
Playing with Resources
Changing the font
• In eclipse, open res/layout/main.xml
• See xml and layout (select toward the bottom)
• Note the outline view at the far right
• Expand linear layout
• Click on textview
• See properties (on of the tabs along the bottom)
• Scroll in properties to text size. Make text size 18pt
• Save and rerun
– If the emulator is idle, it will lock. Unlock to run app
Adding a
button
• In layout/main.xml
• Select outline
• Select LinearLayout
• Click the green “+” to add something
• Find button and select
• Change id
– Select button in outline
– Go to properties
– Find Id and set it to @id/ChangeActivityButton
• Change text to “Press Here”
• Run
Display short message when button is pressed
• Open src/com.example.helloandroid.java
• After “setContentView(…);”, add
final Button button = (Button) findViewById(R.id.ChangeActivityButton);
– Note that Button is red underlined (an error). Click on button. Import Button.
• Add the following code
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View
v) {
// Perform action
on click
Toast.makeText(HelloAndroid.this, "clicked", Toast.LENGTH_SHORT).show();
}
});
– Note that Button is red underlined (an error). Click on button. Import Button.
• Run
Activities
• An app is composed of tasks that have their own screen. These tasks are referred to as activities.
– Activity is composed to some actions (code), and a view
– The code is defined by a java class, while the view is (often) defined by an xml file and code
– The java code controls the screen, and hence which xml file is used
• The system and your activity
– How does an activity become active?
• The OS can start it
• Another activity can start it
– How does the activity end
• The OS can end it
• It can end itself
• The first activity (the one that is active when the app starts) is the one that is given in the app’s manifest.
• An application can have many activities. But only one can be the entry point. The entry point is controlled by the activities intents
Intents
• An intent defines the intent to do something.
• A process will register that it is able to respond to a certain type of intent. This is accomplished with an intent filter.
• Another process (or the OS) will request the intent.
• One example is the app registering its main entry point. Then the OS invokes this intent when the app is to be started.
Make a new activity
• Make a view for the activity
• Text string to show in the view
• Make a class for this activity that will call this view
• Put this activity in the manifest
• Change the button press code to start this activity
Make a view for the activity
• On the left right click on /res/layout
• Select new -> android xml file
• Call file view2.xml
• Leave it as Layout resource
• Leave LinearLayout as root element
Add a new string to /res/strings.xml
• Open strings.xml
• View the resources view (as oppose to the xml view)
• Select Add
• Select String
• Set name otherString
• Set Value This is the second view
Edit view2
• Open /res/layout/view2.xml
• Go to layout view (not xml)
• On far right, select LinearLayout
• Click green +
• Select TextView, ok
• Highlight TextView on far right
• Open properties (tab toward the bottom)
• Scroll through textView to Text.
• Select browse and select otherString (the one we just added)
Add a class to show this view
• Right click on /res/com.example.helloandroid
• Select new -> class
• Set Name to SecondView
• Set superclass to..
– Check what helloAndroid is extended from
– android.app.Activity
– Set super class to android.app.Activity
• Finish
Add code to SecondView
• First open HelloAndroid.java
• Copy @Override….
• Paste in to the same place on Second View
• Delete the button stuff
• Change
– setContentView(R.layout. Main);
– To
– SetContentView(R.layout.???);
• Go back to /res/layout. What is the name of the xml file we just added? view2
• setContentView(R.layout.view2);
Change the manifest so that View2 is an activity
• Notes
– The OS will call (e.g., start) activities
– The app must advertise the activities that can be called and must detail how they are referenced (what name to use to call them)
– This is done in the Manifest (the manifest does many other things as well)
– Edit manifest to allow View2 to be started
• Open androidManifest.xml
• Select the Application tab
– Go to Application Nodes (lower left area)
– Select add
• Select radio button “Create a new element at the top level, in Application”
• Select Activity
• Highlight the newly added activity
• On the right, change name to OtherView. Leave other fields empty
• Now, under application nodes it says OtherView (Activity)
• Under application nodes click add
• Select radio button “Create new element in the selected element, Application > OtherView (Activity)
• Select Intent Filter
• Now Intent Filter has been added. Leave the fields on the right empty
• Under the application nodes highlight the newly added Intent Filter
• Click Add
• Select Action
• In the attributes for Action (on the right), set name to com.example.helloandroid.ShowOtherView.
– This is the name that we made up. This app (and other) can call the activity by this name
• Under Application Nodes select newly added Intent
• Click Add
• Select Category
• In drop down list, select android.intent.category.DEFAULT
• Save
Call View2 when button in main view is clicked
• Open HelloAndroid.java under src/com.example.helloandroid
• Recall that Toast is executed on the button press. Now let’s add something to run the other view. Just below Toast.makeText(…); add
String actionName = "com.example.helloandroid.ShowOtherView";
Intent intent = new Intent(actionName);
startActivity(intent);
• Now save and run