title: ANDROID: Converting inputted numbers to words
body: <p>Our assignment states that we write a program that will input a number up to 6 digits and will convert the numbers into words.. ex: 123 = one hundred twenty three. I AM CLUELESS! Then I found this site <a href="http://www.rgagnon.com/javadetails/java-0426.html" rel="noreferrer">http://www.rgagnon.com/javadetails/java-0426.html</a> 
  but I don't really understand how to convert it into android.</p>
  
  <p>please help me..please.</p>
  
  <p>here is my Main_Activity.xml:</p>
  
  <pre><code>package com.example.torres;
  
  import android.os.Bundle;
  import android.support.v7.app.ActionBarActivity;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.widget.Button;
  import android.widget.EditText;
  
  public class MainActivity extends ActionBarActivity {
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.fragment_main);
  
      final EditText numbers =  (EditText) findViewById(R.id.editText1);
      final EditText results = (EditText) findViewById(R.id.editText2);
  
      Button btnConvert = (Button) findViewById(R.id.button1);     
      btnConvert.setOnClickListener(new OnClickListener() {
  
        @Override
        public void onClick(View arg0) {
           String numberz =numbers.getText().toString();
           try {
               final long number = Long.parseLong(numberz);
               String returnz = Words.convert(number); 
           } catch ( NumberFormatException e) {
               //Toast.makeToast("illegal number or empty number" , toast.long)
           }
  
                         }  });
  
  
          }}
  </code></pre>
  
  <p>and here is my Words.java</p>
  
  <pre><code>package com.example.torres;
  
  import java.text.DecimalFormat;
  
  public class Words  {
  
  
  
  
        private static final String[] tensNames = {
          "",
          " ten",
          " twenty",
          " thirty",
          " forty",
          " fifty",
          " sixty",
          " seventy",
          " eighty",
          " ninety"
        };
  
        private static final String[] numNames = {
          "",
          " one",
          " two",
          " three",
          " four",
          " five",
          " six",
          " seven",
          " eight",
          " nine",
          " ten",
          " eleven",
          " twelve",
          " thirteen",
          " fourteen",
          " fifteen",
          " sixteen",
          " seventeen",
          " eighteen",
          " nineteen"
        };
  
        private Words() {}
  
  
      public static String convertLessThanOneThousand(int number) {
          String soFar;
  
          if (number % 100 &lt; 20){
            soFar = numNames[number % 100];
            number /= 100;
          }
          else {
            soFar = numNames[number % 10];
            number /= 10;
  
            soFar = tensNames[number % 10] + soFar;
            number /= 10;
          }
          if (number == 0) return soFar;
          return numNames[number] + " hundred" + soFar;
        }
  
  
        public static String convert(long number) {
          // 0 to 999 999 999 999
          if (number == 0) { return "zero"; }
  
          String snumber = Long.toString(number);
  
          // pad with "0"
          String mask = "000000000000";
          DecimalFormat df = new DecimalFormat(mask);
          snumber = df.format(number);
  
          // XXXnnnnnnnnn
          int billions = Integer.parseInt(snumber.substring(0,3));
          // nnnXXXnnnnnn
          int millions  = Integer.parseInt(snumber.substring(3,6));
          // nnnnnnXXXnnn
          int hundredThousands = Integer.parseInt(snumber.substring(6,9));
          // nnnnnnnnnXXX
          int thousands = Integer.parseInt(snumber.substring(9,12));
  
          String tradBillions;
          switch (billions) {
          case 0:
            tradBillions = "";
            break;
          case 1 :
            tradBillions = convertLessThanOneThousand(billions)
            + " billion ";
            break;
          default :
            tradBillions = convertLessThanOneThousand(billions)
            + " billion ";
          }
          String result =  tradBillions;
  
          String tradMillions;
          switch (millions) {
          case 0:
            tradMillions = "";
            break;
          case 1 :
            tradMillions = convertLessThanOneThousand(millions)
               + " million ";
            break;
          default :
            tradMillions = convertLessThanOneThousand(millions)
               + " million ";
          }
          result =  result + tradMillions;
  
          String tradHundredThousands;
          switch (hundredThousands) {
          case 0:
            tradHundredThousands = "";
            break;
          case 1 :
            tradHundredThousands = "one thousand ";
            break;
          default :
            tradHundredThousands = convertLessThanOneThousand(hundredThousands)
               + " thousand ";
          }
          result =  result + tradHundredThousands;
  
          String tradThousand;
          tradThousand = convertLessThanOneThousand(thousands);
          result =  result + tradThousand;
  
          // remove extra spaces!
          return result.replaceAll("^\\s+", "").replaceAll("\\b\\s{2,}\\b", " ");}
  
  
  
  
        }
  </code></pre>
  
  <p>The only problem now is that nothing happens lol</p>