Presentation is loading. Please wait.

Presentation is loading. Please wait.

Working with Multiple Activities. Slide 2 Introduction Working with multiple activities Putting together the AndroidManifest.xml file Creating multiple.

Similar presentations


Presentation on theme: "Working with Multiple Activities. Slide 2 Introduction Working with multiple activities Putting together the AndroidManifest.xml file Creating multiple."— Presentation transcript:

1 Working with Multiple Activities

2 Slide 2 Introduction Working with multiple activities Putting together the AndroidManifest.xml file Creating multiple views Introduction to intents Passing data to activities

3 Slide 3 Multiple Activities (Introduction) When the user switches between activities, one activity is stopped, and the other is started Remember the activity lifecycle Note that you can start activities that belong to other applications A Web Browser for example A mailer A dialer

4 Slide 4 Starting an Activity To start a new activity, you call startActivity() passing an Intent as the argument The Intent describes the activity that you want to start The user can then select from the possible intents (external) Or the activity just runs (external) An activity can also return results

5 Slide 5 Creating a Second Activity Remember that an activity is just a class So we just Add a new class Inherit from android.app.Activity Add the activity to the manifest

6 Slide 6 Creating a Second Activity

7 Slide 7 Add to Manifest

8 Slide 8 Resulting Manifest

9 Slide 9 Creating a Layout You have created portrait and landscape layouts When working with multiple activities, you need to create layouts for those activities In the project Explorer, click New, Other

10 Slide 10 Creating a Layout (Illustration) In the first dialog, select Android XML Layout File In the second dialog, select the desired layout

11 Slide 11 Creating a Layout (Illustration) Set configuration options Note the file is added to the res/layout folder by default

12 Slide 12 Introduction to Intents Before we can explicitly start an activity, you need to understand intents An intent is an object used to communicate with the OS Intents are used with activities, services, broadcast receivers, and content providers We have only discussed activities so far You can use intents to tell the Android OS which activity to start

13 Slide 13 Intents (Philosophically) As the name implies, it’s an intention to do an action It’s a message to say I did something I want something to happen When you create an intent, you are saying that you want to move from one activity to another

14 Slide 14 Intents (Types) There are two types of intents Explicit intents are used with a Context and Class object to start an activity within your application Implicit intents are used to start activities outside of your application THERE ARE MUCH MORE TO INTENTS THAN DISCUSSED HERE

15 Slide 15 Creating an Implicit Intent On overloaded version of the Intent constructor accepts an action Intent.ACTION_VIEW is a generalized intent The application is inferred based on the data passed when the activity is started Intent.ACTION_CALL starts the default dialer

16 Slide 16 Creating an Implicit Intent (Example) Create an implicit intent and pass a URL to the intent String url = "http://www.unr.edu"; Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(url)); startActivity(i);

17 Slide 17 Intent (Constructor) This is but one of the many constructors The first argument contains the current activity The second argument contains the class name of the activity to be started

18 Slide 18 Intent (Creating) The following appears in the current activity (MainActivity.this) and starts the second activity (Page2Activity.class)

19 Slide 19 Starting an Activity (Illustration) startActivity is called with an Intent. The ActivityManager uses that intent to determine the activity to start

20 Slide 20 Passing Data to Activities You can pass data from one activity to anther through intent extras Extras are just arbitrary data that can be passed to an intent An extra is a key / value pair that is passed to an intent The started activity can read this extra data

21 Slide 21 Creating (Writing) an Extra First, create the Intent as shown before Second, call putExtra() First argument contains the key Second argument contains the value

22 Slide 22 Creating (Writing) an Extra The first argument contains the key, which here is a constant “LastActivity” The second contains the value “MainActivity”

23 Slide 23 Reading an Extra The getIntent() method returns an Intent object It’s methods get values of a particular type getBooleanExtra(), getByteExtra(), getIntExtra(), etc…

24 Slide 24 Reading an Extra (Example) Read an extra into a TextView

25 Slide 25 Reading and Writing Instance Data (1) By default, the system uses the Bundle instance to save information about each View object Layout state information is restored automatically You are responsible for saving and restoring other instance data Note that a rotation causes the application to be destroyed and recreated with a new layout (later)

26 Slide 26 Reading and Writing Instance Data (2) To save additional instance data, override the onSaveInstanceState() callback method To restore the saved instance data, override the onRestoreInstanceState() callback method

27 Slide 27 onSaveInstanceState() Call putInt() (or other type) to save data The first argument contains the key The second argument contains the value

28 Slide 28 onRestoreInstanceState() Call getInt() (or other type) to restore data. The first argument contains the key The method returns the value

29 Slide 29 State (Illustration)

30 Slide 30 Returning an Activity Result (Introduction) There are times when we need to return a result from an activity We start an activity as before, however, pass a request code when starting the activity The request code is an integer It is send to the child (started) activity The result is then returned to the parent

31 Slide 31 Returning an Activity Result Call startActivityForResult() instead of startActivity() The first argument contains the intent The second argument contains the integer result that will be returned The result is returned through overriding onActivityResult() in the parent activity

32 Slide 32 Returning an Activity Result To return the result, you call one of two forms of setResult() The first returns a result code Typically Activity.RESULT_CANCELED Activity.RESULT_OK The second returns the result code and intent data Call finish() to return from the activity

33 Slide 33 Activity Result Example (1) Start the activity as before with startActivity except call startActivityForResult The first argument contains the activity as before The second argument contains an integer request code It answers the question, from which activity are we returning

34 Slide 34 Activity Result Example (2) Here we return a code but no data The intent is empty and has no extras RESULT_CANCELED is an Android constant We call finish to return to the calling Activity

35 Slide 35 Activity Result Example (2a) Here we return a code and data The Intent has extra data We change the return code

36 Slide 36 Activity Result Example (3) In the calling activity, handle the onActivityResult() event

37 Slide 37 AndroidManifest.xml (Multiple Activities) The AndroidManifest.xml must list all of the activities Remember one activity is designated as the launcher activity

38 Slide 38 AndroidManifest.xml (Multiple Activities)

39 Slide 39 Implicit Activities (Introduction) Implicit activities are handled outside of your application They are other registered applications Your browser, mailer, or dialer

40 Slide 40 Creating an Implicit Intent Creating an implicit intent is a two step process. Create an intent with an argument describing the intent category Intent.ACTION_VIEW is a generalized intent commonly used to process URLS Intent.ACTION_CALL invokes a dailoger On the Intent, Call the setData method to pass the url Call startActivity as usual

41 Slide 41 Creating an Implicit Intent Example to visit UNR (more about URIs later when we talk about the network) String urlString = "http://www.unr.edu"; Intent i = new Intent(Intent.ACTION_VIEW); Uri u = Uri.parse(urlString); i.setData(u); startActivity(i);


Download ppt "Working with Multiple Activities. Slide 2 Introduction Working with multiple activities Putting together the AndroidManifest.xml file Creating multiple."

Similar presentations


Ads by Google