Android Currency USD to NGN naira converter

Getting ones and on an android application development feels good sometimes, especially when you have been able to scale through the hurdles of the initial setup of eclipse.

Here we have a simple android application that converts the US dollars to the Nigerian naira. Although the rates are currently being hard-coded, an upgrade is going on to fetch them online and that would be released soon. And this application could also be enhanced to convert in more than one currency.

Going through the process of the development of this application, although so much dependent on an existing example, in a way I thought there was no need putting it on my blog but on another note I felt it would be a good platform for  android newbies to move a step further.

Now go on with me to the next step as I explain an easy way of achieving this or even something greater.

Steps

1.       Get eclipse IDE(Integrated Development Environment) installed on your system

I have had ,Eclipse Java EE IDE for Web Developers. Version: Helios Service Release 2 Build id: 20110218-0911’ on my system for some time now and believe me, it has really being a great tool to work with having used it for a lot of developments out of android. In building this application all I needed to do was to complete the needed setup for the android part of eclipse and then was I able to fire on with my development. You might decide not to use eclipse for your own development, but giving it a trial is not in any way bad as well. To download and install eclipse, this is the link. http://www.eclipse.org/downloads/

2.       Get Android installed and configured.

After you have downloaded the needed version of eclipse( usually Eclipse Classic 3.5 (Galileo)) the next step is to go ahead and make the necessary android installation and configuration. The link below should help you in doing that. http://www.londatiga.net/it/how-to-setup-android-application-development-on-eclipse/   Please note that for people in countries like Nigeria in which people do not really have extremely fast bandwith, there might be some challenges in achieving the first two steps above and I bet you, one might not be able to move a step further without getting them set.  

3.       Set up an emulator

The purpose of this is to be able to test you application during and after development and see it the way it would work on an android appliance. http://grail.cba.csuohio.edu/~matos/notes/cis-493/lecture-notes/Android-Chapter02-Setup2-Emulator.pdf

4.       Make your application

Depending on the complexity of the app you want to develop, which I believe should not be complicated at this time, eclipse  avails you the opportunity to easily get an application built in no time.   In eclipse, create a new android project and paste the code below into the script below into the res/layout/main.xml file .  

<?xml version=“1.0” encoding=“utf-8”?>

<RelativeLayout

android:id=“@+id/widget32”

android:layout_width=“fill_parent”

android:layout_height=“fill_parent”

xmlns:android=http://schemas.android.com/apk/res/android&#8221;>

<LinearLayout

android:id=“@+id/widget34”

android:layout_width=“250dp”

android:layout_height=“350dp”

android:layout_alignParentLeft=“true”

android:layout_alignParentTop=“true”

android:orientation=“vertical” >

<TextView

android:id=“@+id/dollar”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:text=“”

android:hint=“USD” />

<EditText

android:id=“@+id/dollars”

android:layout_width=“100dp”

android:layout_height=“40dp”

android:text=“100”

android:textSize=“18sp” />

<TextView

android:id=“@+id/nair”

android:layout_width=“100dp”

android:layout_height=“30dp”

android:text=“NGN”

android:textSize=“18sp” />

<EditText

android:id=“@+id/naira”

android:layout_width=“100dp”

android:layout_height=“40dp”

android:text=“160”

android:textSize=“18sp” />

<RadioGroup

android:id=“@+id/widget48”

android:layout_width=“210dp”

android:layout_height=“80dp” >

<RadioButton

android:id=“@+id/dton”

android:layout_width=“200dp”

android:layout_height=“30dp”

android:text=“USD to NGN” />

<RadioButton

android:id=“@+id/ntod”

android:layout_width=“200dp”

android:layout_height=“30dp”

android:text=“NGN to USD” />

</RadioGroup>

<Button

android:id=“@+id/convert”

android:layout_width=“100dp”

android:layout_height=“40dp”

android:layout_marginRight=“26dp”

android:layout_marginTop=“16dp”

android:text=“Convert” />

</LinearLayout>

</RelativeLayout>

After that, copy the following code and paste it in a default java file that eclipse created.  

package com.tunji.android;

import android.*;

import android.app.Activity;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.RadioButton;

import android.widget.TextView;

import android.os.Bundle;

public class CurrencyActivity extends Activity implements OnClickListener {

TextView dollars;

TextView naira;

RadioButton dton;

RadioButton ntod;

Button convert;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

setContentView(R.layout.main);

dollars = (TextView)this.findViewById(R.id.dollars);

naira = (TextView)this.findViewById(R.id.naira);

dton = (RadioButton)this.findViewById(R.id.dton);

dton.setChecked(true);

ntod = (RadioButton)this.findViewById(R.id.ntod);

convert = (Button)this.findViewById(R.id.convert);

convert.setOnClickListener(this);

}

public void onClick(View v) {

if (dton.isChecked()) {

convertDollarsToNaira();

}

if (ntod.isChecked()) {

convertNairaToDollars();

}

}

protected void convertDollarsToNaira() {

double val = Double.parseDouble(dollars.getText().toString());

// in a real app, we’d get this off the ‘net

naira.setText(Double.toString(val*157.00));

}

protected void convertNairaToDollars() {

double val = Double.parseDouble(naira.getText().toString());

// in a real app, we’d get this off the ‘net

dollars.setText(Double.toString(val/157.67));

}

}

5.       Run your application and view your application if there are no hitches.

Although there is a slim chance of everything working smoothly at the very first attempt, here are some links below that could assist in some of the challenges you face. It is however important that you find out what a problem is by searching and reading about the error messages or logs before you start troubleshooting. Else, you might end up muddling up all the application and not knowing where to go from there.   http://www.coderanch.com/t/510807/Android/Mobile/Could-not-find-HelloAndroid-apk http://stackoverflow.com/questions/2793956/android-emulator-wont-run-application-started-from-eclipse I hope this helps, please post your comments and observations and let me know if this helps you. I am also available to assist further if you are experiencing some other forms of challenges as regards this.  

Regards                                                                                   

Dogs barking simple java simulation

Just thought of what to do today and i came up with this simple java code that barks at me when i run it.

Mind you, considering the need for simplicity, the barking has being made in terms of words and not a sound format which is also achievable as might be posted in the future. Below is my code and feel free to make comments, add or subtract from it as you wish.

package com.tunji.dog;

class Dog{

int size;
String breed;
String name;
boolean healthy;

void bark(){
System.out.println(“ruff! ruff!!”);
}

class DogTest{  //this could be saved as another class.

public static void main(String[]args){
Dog c = new Dog();
c.size = 40;
c.breed = “bull”;
c.name = “coaster”;
c.healthy = true;
c.bark();

}
}

 

Regards.

Installation of the JDK on a RedHat Linux System

Installing the JDK on a RedHat Linux System

Today, i feel i should share a solution to another very important process that causes some hitches especially for coders and developers that are to a certain extent upcoming.

It is about the simple java installation on linux redhat.

Ordinarily on a newly installed Redhat Linux server, you might not get a java installation that you desire or even none at all. If you are in such a position then i am happy you got to this blog.

In this post I will describe how to install a JDK on your RedHat Linux server. It should also work on Fedora, however I have not tried it personally.

1. First we need to download a JDK. I am downloading JDK 6u1 from http://java.sun.com/javase/downloads/index.jsp.
Go to that page and click the Download button. On the new page that loads, we will download the Linux RPM in self-extracting file. You can contact me if you are having a challenge doing that.
2. Once you have downloaded your file, and have it placed somewhere on your Linux box (I put mine in /root/jdk), we will extract and install it. The name of the file I downloaded was jdk-6u1-linux-i586-rpm.bin.
3. Login to your Linux box as the root user, and change directory to where you placed the jdk file that you downloaded.
4. Make sure the file you downloaded is executable.

chmod 755 jdk-6u1-linux-i586-rpm.bin

5. Now run the file.

./jdk-6u1-linux-i586-rpm.bin

6. A license agreement will appear on your screen displayed through the more command.
Simply press the enter key until you get to the end, or just press the q key to skip right to the end.
7. At the end of the agreement, type yes to agree to it and continue with the install.
8. The JDK will now unpack and install itself. Your screen output should look similar to the following:

Unpacking…
Checksumming…
Extracting…
UnZipSFX 5.50 of 17 February 2002, by Info-ZIP (Zip-Bugs@lists.wku.edu).
inflating: jdk-6u1-linux-i586.rpm
Preparing… ########################################### [100%]
1:jdk ########################################### [100%]
Unpacking JAR files…
rt.jar…
jsse.jar…
charsets.jar…
tools.jar…
localedata.jar…
plugin.jar…
javaws.jar…
deploy.jar…

Done.

9. The install routine installs the files into the directory /usr/java/jdk1.6.0_01. It also creates two links in that directory named default and latest.
It’s about time Sun has done this. I have been manually doing something like this since the JDK 1.2 days.
These links make it easy to migrate to a new JVM, as you would reference the link in your shell scripts and not the actual JVM directory itself.
10. Now we want our system to automatically put the JDK binary files into our PATH when we login for all users.
To do this, edit the /etc/profile file and place the following two lines at the bottom of your file:

JAVA_HOME=/usr/java/default; export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH; export PATH

11. Now if you logout of your system and then log back in, you should be able to run the java command to print its version. Run the following command:

java -version

And your output should look like:

java version “1.6.0_01”
Java(TM) SE Runtime Environment (build 1.6.0_01-b06)
Java HotSpot(TM) Client VM (build 1.6.0_01-b06, mixed mode, sharing)

12. Congratulations, your JDK is installed!

 

Regards.

How do you send heavy files?

This post i believe might not be read by all but believe me would most likely be useful to all, take a look at the points below:

Do you spend a quality time with you computer and crave acquire more knowledge daily.?

Do you have contacts that you do some form of work or another together, thereby involving you sending some files or even documents?

If the two questions above applies to you then i think you should consider this post.

Many people have mastered the means of sending documents and files through the electronic mails especially when they are not heavy as i know gmail allows files (not executable) of sizes not more than 25 mb. However, what happens when you are to send a 2 gigabyte document to a colleague in another location. Do you sometimes take physical transfer as an option?

http://www.4shared.com is a site i discovered some years back; although being a very popular site, many people still seem not to know about it or what it does.

The function is very simple and it is that you can have up to 15 gigabyte memory free to yourself to store files or send files, just like you manage your email addresses.

To a very good extent, this i think has eliminated the nightmare of not knowing how to send heavy files to any part of the world, especially for those who deal with executable files and other forms of files of folder which can not be sent by ordinary mails.

Follow the steps below to get started using 4shared for free. You can decide to upgrade your account at anytime paying a token if you feel 15 gigabyte will be too small for you to use.

1. visit http://www.4shared.com and sign up

2. You can login with your username and password and then upload whichever files you want to.

3. Copy the url link of your uploaded file and you can send just that to whoever is going to download.

NB: The ‘downloader’ will also have to be a registered member of 4shared but only those who have the link will be able to download the file as long as it still exist in your box. This means that you can decide to delete your upload as soon as the other party has finished the download.

Hope this post was helpful?  please let me have your comments or contact me for further clarification.

Regards.

Starting afresh with Java Programming.

From my little years of experience with java, i have decided to start a blog post here which will take you through some aspects i believe you need to become a good java programmer. While i am preparing to start the classes, i feel you can just place your comments and suggestions here to fire me on.

Stay tuned.

Java program to read and sort figures from a text file

package com.tunji.coursera;

/*This program collects integers and sorts them in either ascending or
descending order as picked in the options given.
There is a need for an enhancement for the program to pick the arrays from
a text file. */

import java.io.*;
import java.util.*;

public class PickSortMerge {

public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new FileReader(“C:\\Utilities\\Textpad programs\\com\\tunji\\coursera\\numbers.txt”));
Map<String, String> map=new TreeMap<String, String>();
String line=””;
while((line=reader.readLine())!=null){
map.put(getField(line),line);
}
reader.close();
FileWriter writer = new FileWriter(“C:\\Utilities\\Textpad programs\\com\\tunji\\coursera\\pro.txt”);
for(String val : map.values()){
writer.write(val);
writer.write(‘\n’);
}
writer.close();
}

private static String getField(String line) {
return line.split(” “)[0];//extract value you want to sort on
}
}

How i resolved Java jms error javax.jms

I felt i had to post the solution to this kind of problem on this blog after spending some time in figuring it out.
I was working through an example of the jms stuff when i encountered the error below which had to my import line:

import javax.jms.*;

C:\Utilities\Textpad programs\com\tunji\jms\SimpleQueueSender.java:4: package javax.jms does not exist
import javax.jms.*;
^
C:\Utilities\Textpad programs\com\tunji\jms\SimpleQueueSender.java:18: cannot find symbol
symbol  : class QueueConnectionFactory
location: class com.tunji.jms.SimpleQueueSender
QueueConnectionFactory  queueConnectionFactory = null;
^
C:\Utilities\Textpad programs\com\tunji\jms\SimpleQueueSender.java:19: cannot find symbol
symbol  : class QueueConnection
location: class com.tunji.jms.SimpleQueueSender
QueueConnection         queueConnection = null;
^
C:\Utilities\Textpad programs\com\tunji\jms\SimpleQueueSender.java:20: cannot find symbol
symbol  : class QueueSession
location: class com.tunji.jms.SimpleQueueSender
QueueSession            queueSession = null;
^
C:\Utilities\Textpad programs\com\tunji\jms\SimpleQueueSender.java:21: cannot find symbol
symbol  : class Queue
location: class com.tunji.jms.SimpleQueueSender
Queue                   queue = null;
^
C:\Utilities\Textpad programs\com\tunji\jms\SimpleQueueSender.java:22: cannot find symbol
symbol  : class QueueSender
location: class com.tunji.jms.SimpleQueueSender
QueueSender             queueSender = null;
^
C:\Utilities\Textpad programs\com\tunji\jms\SimpleQueueSender.java:23: cannot find symbol
symbol  : class TextMessage
location: class com.tunji.jms.SimpleQueueSender
TextMessage             message = null;
^
C:\Utilities\Textpad programs\com\tunji\jms\SimpleQueueSender.java:56: cannot find symbol
symbol  : class QueueConnectionFactory
location: class com.tunji.jms.SimpleQueueSender
queueConnectionFactory = (QueueConnectionFactory)
^
C:\Utilities\Textpad programs\com\tunji\jms\SimpleQueueSender.java:58: cannot find symbol
symbol  : class Queue
location: class com.tunji.jms.SimpleQueueSender
queue = (Queue) jndiContext.lookup(queueName);
^
C:\Utilities\Textpad programs\com\tunji\jms\SimpleQueueSender.java:79: cannot find symbol
symbol  : variable Session
location: class com.tunji.jms.SimpleQueueSender
Session.AUTO_ACKNOWLEDGE);
^
C:\Utilities\Textpad programs\com\tunji\jms\SimpleQueueSender.java:94: cannot find symbol
symbol  : class JMSException
location: class com.tunji.jms.SimpleQueueSender
} catch (JMSException e) {
^
C:\Utilities\Textpad programs\com\tunji\jms\SimpleQueueSender.java:101: cannot find symbol
symbol  : class JMSException
location: class com.tunji.jms.SimpleQueueSender
} catch (JMSException e) {}
^
12 errors

Tool completed with exit code 1

All i did to get this problem solved was to go to where i downloaded the j2ee sdk to and included the path
to j2ee.jar in my class path in the system variables section as below

C:\Utilities\Textpad programs\com\tunji\jms\j2ee.jar;