Android: Reading, using and working with XML data and web services in Android

Posted July 19th @ 8:37 pm by Boyan Tsolov

One of the most powerful aspects of any mobile application for a 3G phone is that it can connect to the Internet. By connecting to the Internet the application can offer much more value to the user since it becomes an interface for a web-based component, e.g. using Twitter’s API to create a Twitter application so that you can get your Twitter updates without having to open the mobile browser. The most common way of interfacing with a web-based component is by using web services in XML format.

While trying to developer my own app which reads a web service from my own server, I ran into a lot of difficulties in implementing the client that consumes the web service. Android does not have libraries for XPath handling of XML documents, so it makes deciphering XML data a little bit more difficult. From what I’ve read online the Android team is currently working on including such libraries in future versions.

After some digging around I found an amazing link that shows different methods for consuming an XML file in Android and parsing through it without the use of XPaths. The link is this: Working with XML on Android. To start off, this link is an absolute must-read. Everything that I am going to write in my post here relates to this link. The code offered on that webpage uses polymorphism to show you 4 different methods of working with XML data. It provides a fully-functional Android application and all the source code for it. The source code can be found here: AndroidXML.zip.

My post today will concentrate on how to customize the code from the application in the above link, in order to read and parse your own XML data. If you are a Java pro, you might not need this post. My Java is a little rusty, so I needed some time to figure out exactly what I had to change and where in order to get this to work with my own web service XML. Now that I’ve figured it out, I thought I’d share it. In my next post I will give the simplified version of this code – where there is no polymorphism, and thus there are only the minimum number of classes needed to implement this XML-reading solution. I can’t offer this simplified code right now – because I haven’t coded it yet :).

So until I post the simplified source code for working with XML data in Android, here are some tips on getting through the larger polymorphism-based source code and customizing it for your own XML data:

Read the rest of this entry »


Advertisement


Android: Creating TableRow rows inside a TableLayout programatically

Posted July 1st @ 10:07 pm by Boyan Tsolov

In my quest to create a “Taxman” Android application I ran into the following problem:

I want to ask the user to enter their yearly income, after which the screen will flip and their after-tax income will be displayed in a table format for all Canadian provinces. (And for the future: all US states). The problem I ran into is creating a TableRow for each Canadian province in my main.xml. There are 13 provinces and territories, so 13 is not that bad to copy & paste in the main.xml; however, as soon as I have to copy & paste more than 2 times I start cringing and nausea kicks in. Personally I think “copy & paste” should not be in the programming vocabulary. Not only that, but I have 13 provinces now, what about when I have to enter 50 states! So, I had to find a way to create these new TableRow rows programmatically inside my TableLayout layout.

A great source for code snippets and answers to Android questions is http://www.anddev.org. I’m sure if you’re dabbling with Android then you’ve already come across this site. The particular post I read to do this is this one: Dynamically add rows to TableLayout. Commenters on that post were having problems getting this to work, but after I imported all the correct classes (android.widget.TableRow.LayoutParams is an important one to use) everything worked from the first time. I forced Eclipse to find most of the classes for me.

Below is the code from anddev.org, with my changes for my Taxman Android app. I’m too lazy to do a full-out beginning-to-end tutorial for this code snippet.

First I set my constants at the top of the Activity class:

public class Activity1 extends Activity implements OnTouchListener{

    int PROVINCE_Alberta = 0;
    int PROVINCE_BC = 1;
    int PROVINCE_Manitoba = 2;
    int PROVINCE_NewBrunswick = 3;
    int PROVINCE_Newfoundland = 4;
    int PROVINCE_Northwest = 5;
    int PROVINCE_NovaScotia = 6;
    int PROVINCE_Nunavut = 7;
    int PROVINCE_Ontario = 8;
    int PROVINCE_PEI = 9;
    int PROVINCE_Quebec = 10;
    int PROVINCE_Saskatchewan = 11;
    int PROVINCE_Yukon = 12;

    int numProvinces = 13;

Read the rest of this entry »


Android: Switching screens by dragging over the touch screen

Posted May 29th @ 12:17 am by Boyan Tsolov

In this post I will show you how to use the touch screen so that you can drag your finger across the screen, and it will switch the screen for you – “iPhone style”!

For this I will be implemented OnTouchListener and overrided the method OnTouch().

To start off, we need to create an Activity with two screens. The two screens will be implemented using a ViewFlipper in the main.xml layout file. Follow the steps in this blog post to set yourself up: Android: Switching screens in an Activity with animations (using ViewFlipper).

1. Now that you have yourself set up, open the Activity1 class.

2. Make the class implement OnTouchListener. The top of the class will look like this:

...
import android.view.View.OnTouchListener;

public class Activity1 extends Activity implements OnTouchListener{
...

2. You will have to override the OnTouch() method as well. If you were using eclipse, it might have created the method stub for you:

    @Override
    public boolean onTouch(View arg0, MotionEvent arg1) {
        // TODO Auto-generated method stub
        return false;
    }

Here is the method that you need to use instead:

    public boolean onTouch(View arg0, MotionEvent arg1) {

        // Get the action that was done on this touch event
        switch (arg1.getAction())
        {
            case MotionEvent.ACTION_DOWN:
            {
                // store the X value when the user's finger was pressed down
                downXValue = arg1.getX();
                break;
            }

            case MotionEvent.ACTION_UP:
            {
                // Get the X value when the user released his/her finger
                float currentX = arg1.getX();            

                // going backwards: pushing stuff to the right
                if (downXValue < currentX)
                {
                    // Get a reference to the ViewFlipper
                     ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
                     // Set the animation
                      vf.setAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out));
                      // Flip!
                      vf.showPrevious();
                }

                // going forwards: pushing stuff to the left
                if (downXValue > currentX)
                {
                    // Get a reference to the ViewFlipper
                    ViewFlipper vf = (ViewFlipper) findViewById(R.id.details);
                     // Set the animation
                     vf.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));
                      // Flip!
                     vf.showNext();
                }
                break;
            }
        }

        // if you return false, these actions will not be recorded
        return true;
    }

What I’ve done is added a CASE statement. On press down of the finger we save the current X value. On press up of the finger, after the dragging motion has finished, I check the X value again. I compare the two X values and I make a logical decision whether I should switch the screens forwards or backwards.

Read the rest of this entry »


Android: Switching screens in an Activity with animations (using ViewFlipper)

Posted May 26th @ 11:48 pm by Boyan Tsolov

In this post I’ll show you how to add animations when trying to switch between screens. Usually when you switch between screens it’s a direct “poof” and the new screen appears in a very un-graceful way. The SDK offers a bunch of easy-to-use animations, and I’ll show you how to use them here.

I tried doing animations on the opening and closing of activities, but I haven’t figured that out yet fully. So instead, I will show you how to use animations when switching on objects/layers inside the same activity. It will still look like you are switching screens, but all the layout data will be in one single XML. If we were to switch between activities, each activity would have had (usually) its own layout XML.

And in the post coming after this one, I’ll show you how to start this animation and switch the screen while dragging your fingers on the touch screen. Let me be a little more precise: while dragging one finger on the touch screen. I’m not sure if the OS handles multi-touch right now – or if that’s something the device has to enable – or both.

Back to the topic: how to switch between layers using animations to make it look like you are changing screens… we will be using a ViewFlipper widget in the layout XML.

1. Create a new Android project, unless you already have one

01 new project

2. Create a new Activity class that extends android.app.Activity.

02 new class

Read the rest of this entry »


Android: Reading Logs and Exceptions

Posted May 24th @ 11:21 pm by Boyan Tsolov

While developing my Android apps I routinely, regularly, almost every time, without a miss, get some kind of exception. And the error you see on screen is not developer friendly, though it is very end-user friendly:

01 error

WTF? Why? What did I do wrong this time, again?

Read the rest of this entry »


Android: How to switch between Activities

Posted May 24th @ 10:38 pm by Boyan Tsolov

In my great expectations of Google Android coming to Canada on June 2nd, I’ve started experimenting with developing some apps for the Android platform. My first app is called “The Taxman” and will calculate the amount of tax you owe per year in your province/state – well only Canada for now.

I had trouble adjusting to what an “Activity” was and how to handle it. Here is a quick and dirty way to create an Activity, and to switch to another Activity (think of it as another screen) on the click of a button.

1. Create a new Android project – or you might already have one created.

01 new project

2. Add a new Class that extends android.app.Activity. You need a total of two classes that extend Activity. You will switch from one Activity to another.

02 new class

03 new class 2

Read the rest of this entry »


Developer’s Perspective on Android: Getting Started

Posted May 24th @ 9:49 pm by Boyan Tsolov

Google Android

I’ve been a fan of Google’s mobile operating system Android for quite a while – technically since I heard about it 2 years ago. I’ve been unfortunate to live in Canada, because none of the telco companies here have carried any phones with Android (only HTC phones for now, but Samsung seems to be coming out with something soon).

But, on June 2nd 2009 Rogers is coming out with the HTC Dream and the HTC Magic and Google Android will be here! And on June 3rd Google Android will be in my hands. [I’m not going to be a geek and get it on the very first day it comes out, come on!]

So, in expectation of this date, I started playing around with Android and developing my own applications. To start off, it’s been absolutely easy, pleasant, and a breeze to setup. It was like stealing candy from a kid. I followed the instructions from the Android – Developers website and using Eclipse as my environment I was creating mobile applications in less than 30 mins.

To get the SDK follow this link: http://developer.android.com/sdk/1.5_r2/index.html
To read the installation instructions follow this link: http://developer.android.com/sdk/1.5_r2/installing.html
And I recommend using Eclipse if you do want to get the “30 mins effect”.

I wanted to test out the different functions/features that Android offers out of the box, so I thought of a simple app which would allow me to have a goal and thus opportunities to experiment. I am going to write a “tax” application. Unfortunately, this tax application will not fill out your taxes. It will calculate how much the government has to take from you each year. You will enter your country (Canada only for now), you will enter your income, and the result will be a summary of your take-home pay and taxes due, by province (or states for the US – eventually). I’m going to call it “The Taxman”.

I’ve just started this mini app, and as I go along I will post snippets of code that I found difficult to come up with – to help out anyone that is looking for the exact same solution. Also, I have a full-time job, so it will take me a month to complete this silly app :), so my posts might be infrequent.

This weekend I had a chance to start it off and I had trouble with a couple of things. I will write a separate post on each one over the next couple of weeks. Here’s three of those things:

1. How to switch from one screen to another (also called Activities)

2. How to switch screens with an animation effect

3. How to switch screens using a dragging motion with your finger – you know, iPhone stylez.

That’s it for now… those 3 posts will be coming out very, very soon!



Advertisement

Options:

Colors

  • download centopeia humana legendado rmvb
  • each time mp3 download
  • download project eden game
  • download telephone ring sound wav
  • download latest counter strike 1.6
  • download tubidy app for blackberry
  • download mp3 peri cinta
  • filemaker pro 6 download mac
  • download map navitel terbaru
  • uffie make it hot download
  • iphone 4 vlog download
  • download my happiness powderfinger mp3
  • download tron bo hoai linh
  • download bot tibia 9.53
  • criadas y seAoras download duane
  • f a 18 super hornet demo download
  • hity 2011 download peb
  • download pokemon lavender town music
  • free download eddy wata i like the way mp3
  • download ios 6 to mac
  • sql developer modeler download
  • download dance dance dance boyfriend mp3
  • canon 20d zoombrowser download
  • download lagu jiraiya versi indonesia
  • download materi kelas 8
  • download wonder girls so hot
  • sholay mouth organ ringtone download
  • download tumhi ho bandhu sakha tumhi ho
  • download wale hate is the new love
  • free download dekh tamasha lakdi ka
  • download obra de mozart
  • download greta knights new world order
  • download a longa viagem de volta
  • download cfw 3.55 da sony
  • download 7 icons playboy video
  • download avaya java device manager
  • susan boyle download mp3 free
  • prince of persia 2 download free
  • download together as one lucky dube
  • wpe download without virus
  • download ebook mencari tuhan yang hilang
  • download pokemon games vnsharing
  • exceed download windows xp
  • a fera vanessa hudgens download dublado
  • avery 64 bit download
  • ethernet controller windows 7 download free
  • download linksys wrt320n software
  • sacred peAna wersja download chomikuj
  • download lagu solat lima waktu
  • iti admit card download up
  • kokoro connect volume 5 download
  • download mankatha theme music free
  • download bahan ajar pkn smp
  • download maquina del tiempo wisin y yandel
  • kalafina live concert download
  • download template 2 kolom blog
  • 8 abs module level 2 download
  • download leftovers by prima j
  • der pate buch download
  • download nhl 09 addony
  • download london paris newyork songs for free
  • eastbound and down theme download
  • download about you now miranda cosgrove mp3
  • unable to download or save files
  • download 50 tons mais escuros livro
  • romanzo criminale download puntate
  • bt broadband help download mac
  • download dub be good to me
  • download iwifihack on ipod touch
  • download um quadro de nA?s dois
  • ddd pool game download free
  • download tears for fears mad world mp3
  • download jogo gtr 2
  • wicked way with you download
  • download pha?n ma?m ha tra? kA? khai 3.0
  • download bb5 easy service tool
  • download lagu remuk jantungku
  • download ot yurots 8.60
  • domace serije download besplatno
  • download donna summer on the radio mp3
  • naruto shippuden episode 215 download free
  • download driver sony vaio vgn p13gh
  • asus m2n68 se2 driver download
  • download edinburgh glasgow expansion pack
  • piratatuga download fm 2011
  • download private emotions mp3
  • game shark 5.0 download
  • matsushita yuya album 2u download
  • download youtube downloader 6.5
  • download r.p.g. maker vx
  • jace everett bad things download free mp3
  • download he has nothing but kungfu
  • download hitman contracts trainer
  • download lagu yang terlupakan aries
  • biostar p4m89 m7b driver download
  • download gmaps for nokia n8
  • download foodcourt waktuku belum terlambat
  • download mse for whs
  • download dragon ball z budokai hr free
  • download zedge ringtones your phone
  • download planeta terror rmvb dublado
  • ubuntu 11.04 os download
  • licence for download manager
  • download future juicy j i'm trippin
  • download physxextensions.dll for batman arkham city
  • whatcha say dubstep download quantum
  • download leitor de cartA?o banrisul
  • ms 6577 video driver download
  • mp3 download va va voom
  • rowdy rathore download songs
  • download aldous huxley heaven and hell
  • download renegado do oiapoque a nova york
  • download ebook revolution 2020 chetan bhagat
  • download cnet internet explorer
  • download how i met 7x13
  • matrix y2k download windows 7
  • download game shopping dress up
  • p 970 driver download
  • download lagu blast band
  • samsung gt b7722 manual download
  • free download to make your computer faster
  • maldita porque download mp3
  • download ile ijo by may d mp3
  • download james arthur lets get it on
  • download esto es calle lapiz conciente
  • download palavras repetidas gabriel o pensador
  • gnomon introduction to maya download
  • arno pro font free download windows
  • download visualization for media player
  • nokia e50 skype download
  • fs design studio 3 download
  • songs.pk download vicky donor
  • james blunt goodbye download
  • minecraft singleplayer download kostenlos deutsch
  • download empire earth units
  • clear download from itunes
  • britney spears criminal download for free
  • download m indicator nokia
  • download free sadda haq rockstar
  • xbox live can't download update
  • download umd movies for psp for free
  • download west coast hustle
  • download zippy susanu numele tau
  • download temi per ubuntu
  • mundo estranho mortes misteriosas download
  • download dreamy baby collection for raw
  • download rapi.dll for windows 7
  • megaman zx download for pc
  • download yahoo fantasy football mobile
  • download world of tanks 0.7.0
  • download hit bollywood songs
  • error sending ram download for bootloader droid 2
  • v per vendetta download ita gratis
  • download lightning for thunderbird 12
  • veoh download how to
  • download tema tribal emerald windows 7
  • u and i hum tum download
  • download f1 racing game free
  • download gun bros for pc
  • counter strike 1.6 download jeje ge
  • mixcraft 5 download keygen
  • adriano sunet & viteza download
  • download sorry t.o. mp3
  • suikoden 5 download iso
  • anjo caido minecraft download gratis
  • download virtual villager 1 full
  • download jay chou hua hai
  • download assault rock mp3
  • garmin 760 manual download
  • download fonte word diva regular
  • bossa nova instrumental download free
  • download gangstar 2 galaxy y
  • download visual foxpro untuk windows 7
  • download sh' boom 5
  • b.a.p second album download
  • the teeth beneath download
  • download starcraft 2 launcher
  • download cartoon wars 2 heroes ipa
  • download voice to text converter software
  • download soundtrack la naranja mecanica
  • fratii reut album 2010 download
  • download the grapes of wrath epub
  • download hitam putih ada band
  • client tibia 8.54 download
  • download my cactus heart
  • summertime mos def download
  • download singularity full rip
  • can't stop maroon 5 download
  • download armv6 android games
  • download flood they might be giants
  • download 1080p bollywood video songs
  • free download maa non stop garba
  • badan pe sitare karaoke download
  • dearly beloved full download
  • mockingbirdill mockingbird editor 9 download
  • download amar swapna tumi
  • microsoft jscript editor download
  • ios 5 download no itunes
  • download home 3d design free
  • sA? para loucos cd download
  • download garmin 2010 maps
  • intel 2200bg driver download for windows 7
  • photofunia new version download
  • micky maus video download
  • download tablet windows 7
  • download mat danh iris thuyet minh
  • download blame it on ya x bandit gang
  • download windows 2003 vm
  • huong dan download heroes 3
  • wsc snooker game download
  • download love rain episode 8 eng sub
  • diarios de vampiro download 2 temporada
  • download up bihar lootne songs.pk
  • download action replay update
  • download domino access for microsoft outlook
  • rumor has it download free mp3
  • download the duff ebook
  • download de thi hsg toan 8
  • download i love you quotes
  • download lagu hidupku bukannya aku lagi
  • mar jayian download song
  • subah subah ringtone download
  • der kleine lord download uploaded
  • negima nintendo ds download
  • download silkroad online game
  • justin timberlake discography download free
  • sunrise avenue download kostenlos
  • download driver for transcend pen drive
  • download photoshop cs5 partes
  • download twitterrific for desktop
  • download minecraft comes alive 1.2.5 installer
  • download airport madness 2 free
  • filip kirkorov disko partizani download
  • download sinners in the hands of an angry god audio
  • 13 assassins download hd
  • ethical questions in dentistry download
  • set theory book download
  • bat download file url
  • free download madura dictionary for windows 7
  • needless opening 1 full download
  • download first take theme song
  • download radar britney spears mp3
  • download musiq soulchild don't change instrumental
  • program za remix download
  • ubuntu download step by step
  • sketches of spain download
  • download cavalo de guerra hd
  • download lagu tangga kesempatan kedua free
  • download sisu bagabonti in tara minunilor zippy
  • download free alvin and the chipmunks movie
  • nvidia 8600gt download driver
  • download saves need for speed undercover
  • dragnet tv show download
  • download pokemon emerald on your computer
  • download donkey kong country 2 snes rom
  • download financial modeling with crystal ball and excel
  • yu gi oh download card
  • gak kayak mantanmu free download mp3
  • presario cq60 software download
  • love comes rising download
  • download gundam ms igloo 2
  • download hp d1360 printer driver free
  • download qt 3.3 for windows
  • overexposed download maroon 5
  • download school days episode 1
  • robert duncan fired up download
  • download the reign ja roule
  • f1 09 game free download
  • download roller coaster 3d rush
  • download black berry messenger 7
  • download mein shayar to nahin
  • download iisadmin.mfl for windows 2003
  • zug simulator free download vollversion kostenlos
  • hyde faith live dvd download
  • download phim nha?t thac hd
  • silly boy download rihanna
  • download the mastery of love free
  • sims 2 exe crack download
  • opera mini download pc free
  • mahadev ki baraat download
  • scx 4623f driver download mac
  • oracle gateways 11g download
  • dias de truta download
  • download thomson tg585 v7 software
  • download castelo animado dublado
  • download balao magico super fantastico
  • amigo da onAa download dublado
  • download vodafone mobile connect 10.2
  • two towers download movie
  • php oop ebook download
  • download song juttni punjabi
  • download phim meo oggy
  • download zhu zhu pets game
  • download bobcat gta sa
  • free download apsara aali video song
  • sabita vabi limbs download
  • india martinez 2012 download
  • download ceca 2011 album
  • download geisha cukup tak lagi gudang lagu
  • download anita blake comics free
  • download oracle 10g standard edition
  • ballad of goddess download
  • download hellsing dublado 3gp
  • download free nokia 7610 pc suite
  • download alkitab windows mobile 6.1
  • glee only exception download free
  • download 2 brooke shields season 1 free
  • download din shagna da
  • primerica financial needs analysis download
  • download kat graham against the wall
  • hit em up download free
  • download bakugan in gba
  • download mp3 cinta memilihmu
  • 4 2 0 kottonmouth kings free download
  • download swing jazz songs
  • download oppa oppa super junior
  • download life frame windows 7 free
  • the sims 3 download e installazione
  • download lagu galau indonesia terbaru
  • download zynga texas holdem for iphone
  • download il cavaliere oscuro il ritorno ita
  • hp pavillion dv1000 drivers download
  • download samurai deeper kyo op
  • stronghold 3 download free full game
  • blood c the last dark ost download
  • download irctc application on mobile
  • download future aint no way around it instrumental
  • mozilla firefox 1.0 7 download
  • download drive de rede
  • download swap magic 3.8 iso
  • microsoft forefront uag download
  • download rtet admit card
  • download mojo gba emulator 1.2
  • chase online banking download
  • download borderlands on pc free
  • brute force attack ubuntu download
  • ibrahim tatlAses vur gitsin download
  • battlefield 3 close quarters download time
  • lady gaga alejandro download kostenlos
  • download the gambler fun
  • download top 10 shooting games
  • free download lagu kahwin mp3
  • nokia n8 user manual announces download
  • download free mahadewi mengapa oh mengapa
  • crysis 2 gcf download
  • czas honoru 1 download
  • download po tej stronie raju
  • tanu weds manu movie download kickass
  • download voice of koyal
  • download kunci gitar wali nenekku pahlawanku
  • download lagu eun bi sarange dachyeoseo
  • download jasiek mbh nazwij to jak chcesz
  • battlefield 2 patch 1.41 download kostenlos
  • download lagu on the floo
  • incredimail xe download windows
  • are you in download
  • dire straits songs download free
  • 64 bit kmplayer download
  • skyrim pirata download pc
  • download fire emblem 7 rom 1235
  • download song dulhe ka sehra suhana
  • download asu din corason
  • download j# second edition
  • download rehab amy winehouse mp3 skull
  • download dragon ball vs street fighter free
  • download jota quest festival de verA?o 2011
  • fallout 3 keygen download
  • download project 64 the emulator zone
  • download dubba jonny vip tutorial
  • akon songs download 2011
  • download deva gana album
  • kruti dev 011 download font
  • antiwpa download windows xp
  • download gammu versi terbaru
  • x ray scanner free download htc
  • lg ks365 free download games
  • download arjunanya buaya mp3
  • quintal de monstros download
  • download hack metin 2fun
  • laos font download windows
  • lumidee could be anything download
  • download windows xp validation tool
  • esmee denters victim free download
  • lagu romantis barat download
  • download winzip 30 day trial
  • download mp3 berharap kau kembali
  • download internet explorer 13 vista
  • download chessmaster xi grandmaster edition
  • download song roya re shiraz uppal
  • download deliric inspectia tehnica de calitate
  • download livro eletronica digital editora erica
  • download leo the late bloomer
  • download lola monroe songs
  • reginaldo rossi download blogspot
  • download soundtrack iklan windows 8 versi india
  • smallville download todas as temporadas dublado
  • abrar ul haq download mp3
  • video games download online
  • 5230 themes free download nokia
  • idolm ster sp download plus