Download Java Coding in Eclipse

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
1
More Java: Encapsulation, Getters, Setters, Anonymous
Class
CS300
Java Packages
2

Provide a mechanism for grouping related types
together in a universally unique namespace.
 java.lang
 Java.util

How to name a package?
 Domain
 Ex.
 Plus
domain android.com will be package com.android
name of the program
 Ex.
CS300
name reversed
com.android.notepad
Access Modifiers
3

Keywords that modify the visibility of the
declarations to which they are applied
 Private:
most restrictive. Not visible outside the block
that contains it.
 Default or package access: next most restrictive. Visible
only from other classes in package.
 Protected: permits all default access rights plus access
from within any subtype.
 Public: allows access from anywhere.
CS300
Encapsulation
4


The idea that an object should never reveal details
about itself that it does not intend to support.
Getters and Setters:
 Common
CS300
example of encapsulation in Java
Getters and Setters example
5

Create a class Contact that extends Comparable<Contact>:
 Fields:
name, age, email
 Create constructor with arguments: name, age, email
 Create getters and setters for all three fields
 Create method compareTo to sort contacts by e-mail
 Test
CS300
Anonymous Class
6

Callback: your code needs to be notified when
something in the UI changes.
 Ex.
a button is pushed and we need to change state,
new data has arrived from the network and it needs to
be displayed


Java provides idiom to pass blocks in code
Anonymous classes are a handy tool for expressing
many kinds of code blocks.
CS300
Without anonymous class
With anonymous class
public class myDataModel{
//Callback class
private class keyHandler implements
View.onKeyListener {
public boolean onKey(View v, int
keyCode, KeyEvent event) {
handleKey(v, keyCode,
event);
}
}
/* @param view in the view we model */
public myDataModel(View view){
view.setOnKeyListener(new KeyHandler())
}
/** Handle a key event **/
void handleKey(View v, int keyCode, KeyEvent
event){
// key handling code goes here …
}
}
public class myDataModel{
7
/* @param view in the view we model */
public myDataModel(View view) {
view.setOnKeyListener(
// this is an anonymous class!!
new View.OnKeyListener() {
public boolean onKey(View v, int
keyCode, KeyEvent event) {
handleKey(v, keyCode,
event);
}
} );
/** Handle a key event **/
void handleKey(View v, int keyCode, KeyEvent
event){
// key handling code goes here …
}
CS300
}
References
8

Programming Android by Zigurd Mednieks, Laird
Dornin, G. Blake Meike, Masumi Nakamura
CS300
Install ADT and AVD
9

http://developer.android.com/sdk/index.html#dow
nload
 If
CS300
you already have eclipse use an Existing IDE option
Install notes
10




Don’t forget to configure the ADT (Eclipse, Window,
Preferences, Android)
Do not forget to set an AVD target (run
configuration)
Do not forget to assign SD memory
Check devices: use the proper one
CS300
Hello Android!!
11





New android project
Delete activity_main.xml
Right click layout -> create new xml. Choose
relative layout
Configure resolution: samsung nexus 4 inch screen,
480-by-800
Create AVD
CS300
Hello Android!!
12

Drawables:
 Hdpi:
high density
 Mdpi: medium density
 Ldpi: low density
 Xhdpi: extra high

Change ID property for relative layout
 +:

create new variable with name
Change BG property
 RGB
CS300
color map
Hello Android!!
13

Add a TextView
 Configure
text property: create a new string resource
(good practice)
 R.String:
name
 String: content
 Configure
 Dp:
text size:
density independent pixel
 Configure
layout margin top
 Text color: #00F
 Text Style: bold
CS300
Hello Android!!
14

Add image view
 Create
new drawable: be careful with names! No
hyphens allowed
 Change:
 Id
 Layout
below: put it under your textview
 Layout center horizontal
 Src: do not forget to add your image in a drawable
directory
CS300