Anda di halaman 1dari 21

ONLINE DROID-TIP CALCULATOR

PATHAK DARSHITA S.
dsp.pathak@gmail.com
CONTACT NO: 9879251273

V.V.P.ENGINEERING COLLEGE RAJKOT-GUJARAT.


ANDROID IS A SOFTWARE STACK FOR MOBILE DEVICES THAT INCLUDES AN OPERATION SYSTEM , MIDDLEWARE AND KEY APPLICATIONS . THE ANDROID SDK PROVIDES THE TOOLS AND APIS NECESSARY TO BEGIN DEVELOPING APPLICATIONS ON THE ANDROID PLATFORM USING THE JAVA PROGRAMMING LANGUAGE. FEATURES : APPLICATION FRAMEWORK ENABLING REUSE AND REPLACEMENT OF COMPONENTS DALVIK VIRTUAL MACHINE OPTIMIZED FOR MOBILE DEVICES INTEGRATED BROWSER BASED ON THE OPEN SOURCE WEBKIT ENGINE OPTIMIZED GRAPHICS POWERED BY A CUSTOM 2D GRAPHICS LIBRARY ; 3D GRAPHICS BASED ON THE OPENGL ES 1.0 SPECIFICATION SQLITE FOR STRUCTURED DATA STORAGE MEDIA SUPPORT FOR COMMON AUDIO , VIDEO AND STILL IMAGE FORMATS GSM TELEPHONY BLUETOOTH, EDGE, 3G AND WIFI CAMERA, GPS, COMPASS AND ACCELEROMETER RICH DEVELOPMENT ENVIRONMENT ANDROID ARCHITECTURE THE FOLLOWING PICTURE SHOWS THE COMPONENTS OF ANDROID OPERATION S YSTEM.

APPLICATIONS
ANDROID WILL SHIP WITH A SET OF CORE APPLICATIONS INCLUDING AN EMAIL CLIENT , SMS PROGRAM, CALENDAR , MAPS, BROWSER , CONTACTS , AND OTHERS . ALL APPLICATIONS ARE WRITTEN USING THE JAVA PROGRAMMING LANGUAGE.

APPLICATION FRAMEWORK
DEVELOPERS HAVE FULL ACCESS TO THE SAME FRAMEWORK APIS USED BY THE CORE APPLICATIONS . THE APPLICATION ARCHITECTURE IS DESIGNED TO SIMPLIFY THE REUSE OF COMPONENTS; ANY APPLICATION CAN PUBLISH ITS CAPABILITIES AND ANY OTHER APPLICATION MAY THEN MAKE USE OF THOSE CAPABILITIES ( SUBJECT TO SECURITY CONSTRAINTS ENFORCED BY THE FRAMEWORK ). THIS SAME MECHANISM ALLOWS COMPONENTS TO BE REPLACED BY THE USER . UNDERLYING ALL APPLICATIONS IS A SET OF SERVICES AND SYSTEMS , INCLUDING:

A RICH AND EXTENSIBLE SET OF VIEWS THAT CAN BE USED TO BUILD AN APPLICATION , INCLUDING LISTS , GRIDS, TEXT BOXES , BUTTONS, AND EVEN AN EMBEDDABLE WEB BROWSER CONTENT PROVIDERS THAT ENABLE APPLICATIONS TO ACCESS DATA FROM OTHER APPLICATIONS (SUCH AS C ONTACTS), OR TO SHARE THEIR OWN DATA A RESOURCE MANAGER, PROVIDING ACCESS TO NON- CODE RESOURCES SUCH AS LOCALIZED STRINGS , GRAPHICS, AND LAYOUT FILES A NOTIFICATION MANAGER THAT ENABLES ALL APPLICATIONS TO DISPLAY CUSTOM ALERTS IN THE
STATUS BAR

AN ACTIVITY MANAGER THAT MANAGES THE LIFE CYCLE OF APPLICATIONS AND PROVIDES A COMMON
NAVIGATION BACKSTACK

FOR MORE DETAILS AND A WALKTHROUGH OF AN APPLICATION , SEE BELOW ...

LIBRARIES
ANDROID INCLUDES A SET OF C/C++ LIBRARIES USED BY VARIOUS COMPONENTS OF THE ANDROID SYSTEM. THESE CAPABILITIES ARE EXPOSED TO DEVELOPERS THROUGH THE ANDROID APPLICATION FRAMEWORK . SOME OF THE CORE LIBRARIES ARE LISTED BELOW: :SYSTEM C LIBRARY - A BSD-DERIVED IMPLEMENTATION OF THE STANDARD C SYSTEM LIBRARY (LIBC), TUNED FOR EMBEDDED L INUX-BASED DEVICES :MEDIA LIBRARIES - BASED ON PACKETVIDEO'S OPEN CORE; THE LIBRARIES SUPPORT PLAYBACK AND RECORDING OF MANY POPULAR AUDIO AND VIDEO FORMATS , AS WELL AS STATIC IMAGE FILES , INCLUDING MPEG4, H.264, MP3, AAC, AMR, JPG, AND PNG :SURFACE MANAGER - MANAGES ACCESS TO THE DISPLAY SUBSYSTEM AND SEAMLESSLY COMPOSITES 2D AND 3D GRAPHIC LAYERS FROM MULTIPLE APPLICATIONS :LIBWEBCORE - A MODERN WEB BROWSER ENGINE WHICH POWERS BOTH THE ANDROID BROWSER AND
AN EMBEDDABLE WEB VIEW

:SGL - THE UNDERLYING 2D GRAPHICS ENGINE :3D LIBRARIES - AN IMPLEMENTATION BASED ON OPENGL ES 1.0 APIS; THE LIBRARIES USE EITHER HARDWARE 3D ACCELERATION ( WHERE AVAILABLE ) OR THE INCLUDED , HIGHLY OPTIMIZED 3D
SOFTWARE RASTERIZER

:FREETYPE - BITMAP AND VECTOR FONT RENDERING :SQLITE - A POWERFUL AND LIGHTWEIGHT RELATIONAL DATABASE ENGINE AVAILABLE TO ALL
APPLICATIONS

ANDROID RUNTIME
ANDROID INCLUDES A SET OF CORE LIBRARIES THAT PROVIDES MOST OF THE FUNCTIONALITY AVAILABLE IN THE CORE LIBRARIES OF THE JAVA PROGRAMMING LANGUAGE. EVERY ANDROID APPLICATION RUNS IN ITS OWN PROCESS, WITH ITS OWN INSTANCE OF THE DALVIK VIRTUAL MACHINE . DALVIK HAS BEEN WRITTEN SO THAT A DEVICE CAN RUN MULTIPLE VMS EFFICIENTLY . THE DALVIK VM EXECUTES FILES IN THE D ALVIK EXECUTABLE (.DEX) FORMAT WHICH IS OPTIMIZED FOR MINIMAL MEMORY FOOTPRINT . THE VM IS REGISTER -BASED , AND RUNS CLASSES COMPILED BY A JAVA LANGUAGE COMPILER THAT HAVE BEEN TRANSFORMED INTO THE .DEX FORMAT BY THE INCLUDED "DX" TOOL . THE DALVIK VM RELIES ON THE LINUX KERNEL FOR UNDERLYING FUNCTIONALITY SUCH AS
THREADING AND LOW - LEVEL MEMORY MANAGEMENT .

LINUX KERNEL
ANDROID RELIES ON LINUX VERSION 2.6 FOR CORE SYSTEM SERVICES SUCH AS SECURITY, MEMORY MANAGEMENT , PROCESS MANAGEMENT , NETWORK STACK , AND DRIVER MODEL . THE KERNEL ALSO ACTS AS AN ABSTRACTION LAYER BETWEEN THE HARDWARE AND THE REST OF THE SOFTWARE STACK . SYSTEM REQUIREMENTS SO RATHER THAN WASTING TIME ON LEARNING THE THEORETICAL ASPECTS WE WOULD RATHER LIKE YOU TO GET YOUR HANDS DIRTY AND CREATE YOUR FIRST APP WITH GOOGLE ANDROID . BUT YOU NEED THE FOLLOWING THINGS READY WITH YOU BEFORE STARTING THE DEVELOPMENT . THIS TUTORIAL ASSUMES THAT YOUR OS IS WINDOWS XP BUT YOU CAN FOLLOW THE PROCEDURE FOR OTHER OS EASILY. JUST DOWNLOAD THE RELEVANT FILES FROM THE DOWNLOAD LOCATIONS SPECIFIED. SYSTEM AND SOFTWARE R EQUIREMENTS :TO DEVELOP ANDROID APP YOU NEED TO HAVE SUITABLE ENVIRONMENT AS DISCUSSED BELOW :SUPPORTED OPERATING S YSTEMS WINDOWS XP OR VISTA MAC OS X 10.4.8 OR LATER (X86 ONLY) LINUX (TESTED ON LINUX UBUNTU DAPPER DRAKE)

SUPPORTED DEVELOPMENT ENVIRONMENTS:


ECLIPSE IDE ECLIPSE 3.3 (EUROPA), 3.4 (GANYMEDE) ECLIPSE JDT PLUGIN (INCLUDED IN MOST ECLIPSE IDE PACKAGES) WST (OPTIONAL, BUT NEEDED FOR THE ANDROID EDITORS FEATURE ; INCLUDED IN MOST ECLIPSE IDE PACKAGES) JDK 5 OR JDK 6 (JRE ALONE IS NOT SUFFICIENT) ANDROID DEVELOPMENT TOOLS PLUGIN (OPTIONAL ) NOT COMPATIBLE WITH GNU COMPILER FOR JAVA (GCJ) OTHER DEVELOPMENT ENVIRONMENTS OR IDES JDK 5 OR JDK 6 (JRE ALONE IS NOT SUFFICIENT) APACHE ANT 1.6.5 OR LATER FOR LINUX AND MAC, 1.7 OR LATER FOR WINDOWS NOT COMPATIBLE WITH GNU COMPILER FOR JAVA (GCJ) \

DOWNLOADS AND DEVELOPMENT SETTINGS


1 ) DOWNLOAD THE GOOGLE ANDROID SDK FROM HTTP://CODE. GOOGLE .COM/ANDROID /DOWNLOAD .HTML AND UNZIP THE FILES INTO C:\TOOLS\ANDROID 2 ) DOWNLOAD ANT FROM HTTP://ANT .APACHE .ORG/BINDOWNLOAD .CGI AND UNZIP THE FILES INTO C:\TOOLS\ANT 3 ) DOWNLOAD JDK FROM HTTP://JAVA.SUN .COM/JAVASE/DOWNLOADS/INDEX.JSP AND INSTALL IT ON C:\TOOLS\JAVA 4 ) DOWNLOAD DROIDDRAW FROM HTTP://CODE.GOOGLE.COM/P/DROIDDRAW/ ( NOT NECESSARY BUT IT WILL BE EASIER TO CREATE THE GUI USING THIS ) AND UNZIP THE FILES INTO C:\TOOLS\DROIDDRAW 5) CREATE TWO ENVIRONMENT VARIABLES ANT_HOME AND JAVA_HOME AND POINT THEM TO C:\TOOLS \ANT AND C:\ TOOLS \JAVARESPECTIVELY . ALSO ADD C:\TOOLS \ANT \BIN & C:\TOOLS\JAVA \BIN INTO YOUR PATH VARIABLE.

YOU CAN CREATE THE VARIABLES BY RIGHT CLICKING ON MY COMPUTER -> PROPERTIES -> ADVANCED > ENVIRONMENT VARIABLES.

BE CAREFUL WHEN YOU ARE EDITING YOUR PATH . YOU SHOULD ADD THE PATHS AT THE END OF ALREADY EXISTING PATH VALUE BY SEPARATING THE PATHS WITH ;

CREATING A CALCULATOR
PLEASE FOLLOW THIS STEPS AND YOU WILL HAVE A SIMPLE GOOGLE ANDROID APP WHICH WILL PRINT THE MESSAGE HELLO , WORLD ON YOUR MOBILE SCREEN. 1 ) RUN EMULATOR .EXE ( C:\TOOLS\ANDROID \TOOLS )

YOU SHOULD HAVE THE DEFAULT SCREEN VISIBLE. KEEP THE EMULATOR RUNNING AND GOTO COMMAND PROMPT AND ENTER THE FOLLOWING COMMANDS TO CREATE AND UPLOAD DUMMY ANDROID APP TO OUR DUMMY PHONE .
C:\TOOLS\ANDROID \TOOLS>ACTIVITYCREATOR .BAT --OUT TIPCALC COM .ANDROID .TIPCALC C:\TOOLS\ANDROID \TOOLS>CD TIPCALC C:\TOOLS\ANDROID \TOOLS\TIPCALC >ANT C:\TOOLS\ANDROID \TOOLS\TIPCALC >..\ADB INSTALL BIN \TIPCALC -DEBUG .APK

THE ACTIVITYCREATOR .BAT FILE WILL CREATE ALL THE BASIC STUB FILES NEEDED TO CREATE A BASIC ANDROID APP .

ANT WILL COMPILE THE PROGRAM CREATED BY ACTIVITY CREATOR INTO BINARY FORMAT WHICH CAN BE RUN ON ANDROID PHONE . ADB INSTALL WILL UPLOAD THE BINARY APPLICATION ON THE PHONE . THIS IS HOW YOUR SCREEN SHOULD LOOK LIKE :-

NOW A SIMPLE ANDROID APP HAS BEEN CREATED , COMPILED AND UPLOADED ONTO OUR PHONE EMULATOR . Y OU CAN GO AND RUN THAT APP . IT SHOULD GREET YOU WITH THE FAMOUS HELLO , WORLD MESSAGE .

NOW WE WILL MODIFY THIS SAMPLE APP AND CREATE OUR TIP CALCULATING APPLICATION .

DONT FORGET TO DELETE THE UPLOADED APP BEFORE INSTALLING NEW APP. IT IS NECESSARY TO DELETE THE UPLOADED APP . Y OU CAN DELETE IT BY RUNNING THIS COMMANDS.
C:\TOOLS\ANDROID \TOOLS\TIPCALC >..\ADB SHELL

#CD DATA/APP #RM COM.ANDROID.APK #EXIT YOU CAN USE LS COMMAND TO HAVE A LOOK AT THE APP INSTALLED BY USER . WRITING TIP CALCULATOR NOW WE WILL CREATE A SIMPLE TIP CALCULATING APPLICATION VERY SIMILAR TO ONE OVER HEREHTTP://WWW .ONLINECONVERSION .COM/TIP_CALCULATOR .HTM

FIRST WE WILL DESIGN OUR GUI. YOU CAN USE DROIDDRAW TO DESIGN THE GUI .

THE DROIDDRAW WILL GENERATE XML CODE . YOU HAVE TO REPLACE THE CODE IN TIPCALC \RES \LAYOUT \MAIN .XML WITH THE GENERATED CODE . OLD MAIN .XML FILE CONTENTS :-

<?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 ="H ELLO WORLD , TIPCALC "

/> </LINEARLAYOUT> NEW MAIN.XML FILE CONTENTS :<?XML VERSION ="1.0" ENCODING ="UTF-8"?> <ABSOLUTELAYOUT
ANDROID :ID="@+ID/WIDGET 0" ANDROID :LAYOUT _WIDTH =" FILL_PARENT " ANDROID :LAYOUT _HEIGHT ="FILL_PARENT " XMLNS:ANDROID ="HTTP://SCHEMAS.ANDROID .COM / APK/RES /ANDROID "

> <TEXTVIEW
ANDROID :LAYOUT _WIDTH =" FILL_PARENT " ANDROID :LAYOUT _HEIGHT ="WRAP_CONTENT " ANDROID :TEXT ="H ELLO WORLD , TIPCALC "

/> <TEXTVIEW

ANDROID :ID="@+ID/WIDGET 28" ANDROID :LAYOUT _WIDTH ="99PX" ANDROID :LAYOUT _HEIGHT ="17PX" ANDROID :TEXT ="AMOUNT OF BILL" ANDROID :LAYOUT _X ="40PX" ANDROID :LAYOUT _Y ="32PX"

> </TEXT VIEW> <TEXTVIEW


ANDROID :ID="@+ID/WIDGET 29" ANDROID :LAYOUT _WIDTH =" WRAP_CONTENT " ANDROID :LAYOUT _HEIGHT ="WRAP_CONTENT " ANDROID :TEXT ="P ERCENTAGE TO TIP" ANDROID :LAYOUT _X ="40PX" ANDROID :LAYOUT _Y ="82PX"

> </TEXT VIEW> <TEXTVIEW


ANDROID :ID="@+ID/WIDGET 30" ANDROID :LAYOUT _WIDTH =" WRAP_CONTENT " ANDROID :LAYOUT _HEIGHT ="WRAP_CONTENT " ANDROID :TEXT ="NUMBER OF PEOPLE" ANDROID :LAYOUT _X ="40PX" ANDROID :LAYOUT _Y ="132PX"

> </TEXT VIEW>

<TEXTVIEW
ANDROID :ID="@+ID/WIDGET 31" ANDROID :LAYOUT _WIDTH =" WRAP_CONTENT " ANDROID :LAYOUT _HEIGHT ="18PX" ANDROID :TEXT ="T IP AMOUT " ANDROID :LAYOUT _X ="40PX" ANDROID :LAYOUT _Y ="262PX"

> </TEXT VIEW> <TEXTVIEW


ANDROID :ID="@+ID/WIDGET 32" ANDROID :LAYOUT _WIDTH =" WRAP_CONTENT " ANDROID :LAYOUT _HEIGHT ="18PX" ANDROID :TEXT ="T OTAL P ER PERSON " ANDROID :LAYOUT _X ="40PX" ANDROID :LAYOUT _Y ="352PX"

> </TEXT VIEW> <TEXTVIEW


ANDROID :ID="@+ID/WIDGET 33" ANDROID :LAYOUT _WIDTH =" WRAP_CONTENT " ANDROID :LAYOUT _HEIGHT ="WRAP_CONTENT " ANDROID :TEXT ="T OTAL T O PAY" ANDROID :LAYOUT _X ="40PX" ANDROID :LAYOUT _Y ="302PX"

>

</TEXT VIEW> <BUTTON


ANDROID :ID="@+ID/BTNCALCULATE " ANDROID :LAYOUT _WIDTH ="87PX" ANDROID :LAYOUT _HEIGHT ="WRAP_CONTENT " ANDROID :TEXT ="C ALCULATE " ANDROID :LAYOUT _X ="40PX" ANDROID :LAYOUT _Y ="182PX"

> </BUTTON> <BUTTON


ANDROID :ID="@+ID/BTNRESET " ANDROID :LAYOUT _WIDTH ="86PX" ANDROID :LAYOUT _HEIGHT ="WRAP_CONTENT " ANDROID :TEXT ="RESET " ANDROID :LAYOUT _X ="140PX" ANDROID :LAYOUT _Y ="182PX"

> </BUTTON> <EDITTEXT


ANDROID :ID="@+ID/TXTBILLAMOUNT " ANDROID :LAYOUT _WIDTH =" WRAP_CONTENT " ANDROID :LAYOUT _HEIGHT ="35PX" ANDROID :TEXT ="100" ANDROID :TEXT SIZE ="18 SP" ANDROID :LAYOUT _X ="200PX"

ANDROID :LAYOUT _Y ="22PX"

> </EDITTEXT> <EDITTEXT


ANDROID :ID="@+ID/TXTPERCENTAGE " ANDROID :LAYOUT _WIDTH ="51PX" ANDROID :LAYOUT _HEIGHT ="36PX" ANDROID :TEXT ="10" ANDROID :TEXT SIZE ="18 SP" ANDROID :LAYOUT _X ="200PX" ANDROID :LAYOUT _Y ="72PX"

> </EDITTEXT> <EDITTEXT


ANDROID :ID="@+ID/TXTPEOPLE " ANDROID :LAYOUT _WIDTH =" WRAP_CONTENT " ANDROID :LAYOUT _HEIGHT ="39PX" ANDROID :TEXT ="1" ANDROID :TEXT SIZE ="18 SP" ANDROID :LAYOUT _X ="200PX" ANDROID :LAYOUT _Y ="122PX"

> </EDITTEXT> <TEXTVIEW


ANDROID :ID="@+ID/TXTTIPAMOUNT " ANDROID :LAYOUT _WIDTH =" WRAP_CONTENT "

ANDROID :LAYOUT _HEIGHT ="WRAP_CONTENT " ANDROID :TEXT ="" ANDROID :LAYOUT _X ="200PX" ANDROID :LAYOUT _Y ="262PX"

> </TEXT VIEW> <TEXTVIEW


ANDROID :ID="@+ID/TXTTOTAL " ANDROID :LAYOUT _WIDTH =" WRAP_CONTENT " ANDROID :LAYOUT _HEIGHT ="WRAP_CONTENT " ANDROID :TEXT ="" ANDROID :LAYOUT _X ="200PX" ANDROID :LAYOUT _Y ="302PX"

> </TEXT VIEW> <TEXTVIEW


ANDROID :ID="@+ID/TXTPERPERSON " ANDROID :LAYOUT _WIDTH =" WRAP_CONTENT " ANDROID :LAYOUT _HEIGHT ="WRAP_CONTENT " ANDROID :TEXT ="" ANDROID :LAYOUT _X ="200PX" ANDROID :LAYOUT _Y ="352PX"

> </TEXT VIEW> </ABSOLUTELAYOUT>

NOW WE WILL ALSO WRITE THE PROGRAM WHICH WILL USE THIS GUI TO CREATE THE TIP CALCULATION FUNCTIONALITY . IN THE TIPCALC \ SRC\COM\ANDROID \TIPCALC .JAVA FILE YOU WILL FIND THIS CODE ( WHICH WAS AUTOMATICALLY CREATED BY ACTIVITYCREATOR .BAT . OLD TIPCALC .JAVA CONTENTS :PACKAGE COM .ANDROID ; IMPORT ANDROID .APP .ACTIVITY ; IMPORT ANDROID .OS.BUNDLE; PUBLIC CLASS TIPCALC EXTENDS ACTIVITY

{ /** CALLED WHEN THE ACTIVITY IS FIRST CREATED . */ @OVERRIDE


PUBLIC VOID ON C REATE(B UNDLE SAVED INSTANCESTATE)

{
SUPER .ONC REATE( SAVED I NSTANCE STATE); SETC ONTENT VIEW(R.LAYOUT .MAIN );

} } REPLACE THE ABOVE CODE WITH THE FOLLOWING CODE . NEW TIPCALC .JAVA CONTENTS :PACKAGE COM .ANDROID ; IMPORT ANDROID .APP .ACTIVITY ; IMPORT ANDROID .OS.BUNDLE; IMPORT ANDROID .WIDGET .EDIT TEXT; IMPORT ANDROID .WIDGET .T EXTVIEW; IMPORT ANDROID .WIDGET .B UTTON ; IMPORT ANDROID .VIEW.VIEW ; PUBLIC CLASS TIPCALC EXTENDS ACTIVITY

{
PRIVATE EDIT TEXT TXTBILLAMOUNT ; PRIVATE EDIT TEXT TXTPEOPLE ; PRIVATE EDIT TEXT TXTPERCENTAGE ; PRIVATE TEXTVIEW TXTPERPERSON ; PRIVATE TEXTVIEW TXTTIPAMOUNT ; PRIVATE TEXTVIEW TXTTOTAL ; PRIVATE BUTTON BTNCALCULATE ; PRIVATE BUTTON BTNRESET ; PRIVATE DOUBLE BILLAMOUNT = 0; PRIVATE DOUBLE PERCENTAGE = 0; PRIVATE DOUBLE NUMOFPEOPLE =0; PRIVATE DOUBLE TIPAMOUNT = 0; PRIVATE DOUBLE TOTALTOPAY = 0; PRIVATE DOUBLE PERPERSON = 0;

/** CALLED WHEN THE ACTIVITY IS FIRST CREATED . */ @OVERRIDE


PUBLIC VOID ON C REATE(B UNDLE SAVED INSTANCESTATE)

{
SUPER .ONC REATE( SAVED I NSTANCE STATE); SETC ONTENT VIEW(R.LAYOUT .MAIN ); INIT C ONTROLS();

}
PRIVATE VOID INIT C ONTROLS()

{
TXTBILLAMOUNT = (EDIT T EXT) FIND V IEWBY ID(R.ID. TXTBILLAMOUNT );

TXTPEOPLE = (EDIT TEXT) FIND VIEWBYID(R.ID.TXTPEOPLE ); TXTPERCENTAGE = (EDIT T EXT) FIND V IEWBY ID(R.ID. TXTPERCENTAGE ); TXTPERPERSON =(T EXT VIEW ) FIND VIEWBYID(R.ID.TXTPERPERSON ); TXTTIPAMOUNT =(T EXTV IEW ) FIND VIEWBYID(R.ID. TXTTIPAMOUNT ); TXTTOTAL =(T EXTVIEW) FIND VIEWBYID(R.ID .TXTTOTAL ); BTNCALCULATE = (BUTTON ) FIND VIEWB YID(R.ID.BTNCALCULATE ); BTNRESET = (BUTTON ) FIND VIEWBYID(R.ID .BTNRESET ); BTNCALCULATE . SET ONC LICK L ISTENER ( NEW BUTTON .ONC LICKL ISTENER () { PUBLIC VOID ON C LICK

(VIEW V){ CALCULATE(); }});


BTNRESET . SET ONC LICKL ISTENER ( NEW BUTTON .ONC LICK L ISTENER () { PUBLIC VOID ON C LICK (VIEW V ){ RESET (); }});

}
PRIVATE VOID CALCULATE()

{
BILLAMOUNT =DOUBLE.PARSE DOUBLE( TXTBILLAMOUNT .GETTEXT ().TOSTRING ()); PERCENTAGE =DOUBLE.PARSE DOUBLE( TXTPERCENTAGE . GETTEXT ().TOSTRING ()); NUMOFPEOPLE =DOUBLE.PARSE DOUBLE( TXTPEOPLE. GET TEXT().TOSTRING()); TIPAMOUNT =( BILLAMOUNT * PERCENTAGE )/100; TOTALTOPAY =BILLAMOUNT +TIPAMOUNT ; PERPERSON =TOTALTOPAY /NUMOFPEOPLE ; TXTTIPAMOUNT . SET TEXT (D OUBLE.TOSTRING( TIPAMOUNT )); TXTTOTAL .SETTEXT(DOUBLE.TOS TRING( TOTALTOPAY )); TXTPERPERSON . SET TEXT (D OUBLE.TOSTRING( PERPERSON ));

}
PRIVATE VOID RESET ()

{
TXTBILLAMOUNT .SETTEXT ("");

TXTPEOPLE .SETTEXT(""); TXTPERCENTAGE .SETTEXT (""); TXTPERPERSON . SET TEXT (""); TXTTIPAMOUNT . SET TEXT (""); TXTTOTAL .SETTEXT("");

} } NOW WE WILL ADD AN ICON FOR OUR APP .

MODIFY ANDROIDMANIFEST .XML SO THAT THIS LINE IS CHANGED FROM <APPLICATION ANDROID :LABEL="@STRING/APP_NAME"> TO <APPLICATION ANDROID :ICON="@DRAWABLE/ICON " ANDROID :LABEL="@STRING/APP_NAME"> NOW CREATE A DIRECTORY DRAWABLE IN TIPCALC\RES AND PUT ICON .PNG FILE THERE . NOW COMPILE OUR NEW APPLICATION AGAIN BY RUNNING C:\TOOLS \ANDROID\TOOLS\TIPCALC>ANT UPLOAD THE APP TO THE EMULATOR USING ADB INSTALL COMMAND AND YOUR FIRST GOOGLE ANDROID APP IS READY FOR LAUNCH. DONT FORGET TO REMOVE THE PREVIOUS UPLOADED APPLICATION FIRST . IN ACTION

Anda mungkin juga menyukai