1 / 33

Introducing the Sudoku Example

Introducing the Sudoku Example. Content taken from book: “Hello, Android” by Ed Burnette Third Edition. Review of key concepts. An activity is a user interface screen. Applications can define one or more activities to handle different phases of the program .

osias
Télécharger la présentation

Introducing the Sudoku Example

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introducing the Sudoku Example Content taken from book: “Hello, Android” by Ed Burnette Third Edition

  2. Review of key concepts • An activity is a user interface screen. • Applications can define one or more activities to handle different phases of the program. • An intent is a mechanism for describing a specific action, such as “pick a photo,” “phone home,”

  3. More key concepts • A service is a task that runs in the background without the user’s direct interaction. • A content provider is a set of data wrapped up in a custom API to read and write it. • A resource is a localized text string, bitmap, or other small piece of noncodeinformation that your program needs.

  4. Safe and Secure • Every application runs in its own Linux process. • The hardware forbids one process from accessing another process’s • Access to certain critical operations is restricted, and you must specifically ask for permission to use them in a file named Android-Manifest.xml

  5. Most common permissions • INTERNET: Access the Internet. • READ_CONTACTS: Read (but don’t write) the user’s contacts data. • WRITE_CONTACTS: Write (but don’t read) the user’s contacts data. • RECEIVE_SMS: Monitor incoming SMS (text) messages. • ACCESS_COARSE_LOCATION: Use a coarse location provider such as cell towers or wifi. • ACCESS_FINE_LOCATION: Use a more accurate location provider such as GPS.

  6. Example <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.android.app.myapp" > <uses-permission android:name="android.permission.RECEIVE_SMS" /> </manifest>

  7. Sudoku Game • You have a grid of eighty-one tiles (nine across and nine down), and you try to fill them in with numbers so that each column, each row, and each of the three-by-three boxes contains the numbers 1 through 9 only once. • When the game starts, some of the numbers (the givens) are already filled in. • All the player has to do is supply the rest. • A true Sudoku puzzle has only one unique solution.

  8. The Sudoku example program

  9. Designing by Declaration • User interfaces can be designed using one of two methods: procedural and declarative. • Procedural simply means in code. • Declarative design, on the other hand, does not involve any code.

  10. Creating the Opening Screen

  11. First Activity When you create the Sudoku project, the Android plug-in makes a single activity for you in Sudoku.java The call to setContentView( ) fills in the contents of the activity’s screen with an Android view widget.

  12. First Activity: declarative design R.layout.main is a resource identifier that refers to the main.xml file in the res/layout directory main.xml declares the user interface in XML, so that’s the file we need to modify.

  13. Initial resources in the Sudoku project

  14. Linear Layout <LinearLayout xmlns:android=http://schemas.android.com/apk/res/androidandroid:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <!-- ... --> </LinearLayout>

  15. Some parameters in layouts • xmlns:android="http://schemas.android.com/apk/res/android" • Defines the XML namespace for Android • Inside the <LinearLayout> tag you’ll find one child widget: <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" />

  16. Modified main.xml file The @string/resid syntax refers to strings in the res/values/strings.xml file @+id/about_buttondefines the ID for the About button

  17. Modified strings.xml file

  18. Modifying the interface • Let’s make the title text larger and centered, make the buttons smaller, and use a different background color.

  19. Color Definition • the color definition, which you should put in res/values/colors.xml <?xml version="1.0" encoding="utf-8"?> <resources> <color name="background">#3500ffff</color> </resources>

  20. New layout

  21. Using Alternate Resources Let’s see what happens when we switch the emulator to landscape mode by typing Ctrl F11 (in windows)

  22. Different layout for landscape mode Create a file called res/layout-land/main.xml (note the -land suffix)

  23. Implementing an About Box • When the user selects the About button, meaning that either they touch it (if they have a touch screen) or they navigate to it with the D-pad (directional pad) or trackball and press the selection button, we want to pop up a window with some information about Sudoku. • After scrolling through the text, the user can press the Back button to dismiss the window.

  24. Possible solutions • Define a new Activity, and start it. • Use the AlertDialog class, and show it. • Subclass Android’s Dialog class, and show that.

  25. Defining new activity • res/layout/about.xml add strings for the title of the About dialog box and the text it contains to res/values/strings.xml

  26. Formatting strings • Note how a string resource can contain simple HTML formatting and can span multiple lines. • The backslash character (\) in about_text prevents an extra blank from appearing before the first word.

  27. About activity • The About activity should be defined in About.java. • All it needs to do is override onCreate( ) and call setContentView( ). • To create a new class in Eclipse, use File > New > Class. Specify the following:

  28. About.java Edit the class so it looks like this:

  29. About button in the Sudoku class In the onCreate( ) method, add code to call findViewById( ) to look up an Android view given its resource ID, and add code to call setOnClickListener() to tell Android which object to tickle when the user touches or clicks the view

  30. setOnClickListener( ) method • The setOnClickListener( ) method needs to be passed an object that implements the OnClickListener Java interface. • OnClickListener has one method in it called onClick( )

  31. Starting activities • To start an activity in Android, we first need to create an instance of the Intent class. • There are two kinds of intents: public (named) intents that are registered with the system and can be called from any application and private (anonymous)

  32. Activities and the Manifest • Every activity needs to be declared in AndroidManifest.xml <activity android:name=".About" android:label="@string/about_title" > </activity>

  33. Clicking on the About button

More Related