android program crashing (new to platform)

Posted by mutio on Stack Overflow See other posts from Stack Overflow or by mutio
Published on 2009-08-30T02:42:47Z Indexed on 2010/06/10 14:13 UTC
Read the original article Hit count: 246

Filed under:
|
|

So it is my first real Android program (!hello world), but i do have java experience.The program compiles fine, but on running it crashes as soon as it opens (tried debugging, but it crashes before it hits my breakpoint). Was looking for any advice from anyone who is more experienced with android.

package org.me.tipcalculator;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import java.text.NumberFormat;
import android.util.Log;

public class TipCalculator extends Activity {

public static final String tag = "TipCalculator";

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);

    final EditText mealpricefield = (EditText) findViewById(R.id.mealprice);
    final TextView answerfield = (TextView) findViewById(R.id.answer);

    final Button button =  (Button) findViewById(R.id.calculate);
    button.setOnClickListener(new Button.OnClickListener()
    {
        public void onClick(View v) {
            try
            {
                Log.i(tag, "onClick invoked.");
                String mealprice = mealpricefield.getText().toString();

                Log.i(tag, "mealprice is [" + mealprice + "]");
                String answer = "";

                if (mealprice.indexOf("$") == -1)
                {
                    mealprice = "$" + mealprice;
                }

                float fmp = 0.0F;

                NumberFormat nf =
                        java.text.NumberFormat.getCurrencyInstance();

                fmp = nf.parse(mealprice).floatValue();

                fmp *= 1.2;

                Log.i(tag, "Total Meal Price (unformatted) is [" + fmp + "]");

                answer = "Full Price, including 20% Tip: " + nf.format(fmp);

                answerfield.setText(answer);

                Log.i(tag, "onClick Complete");

            }
            catch(java.text.ParseException pe){
                Log.i (tag ,"Parse exception caught");
                answerfield.setText("Failed to parse amount?");
            }
            catch(Exception e){
                Log.e (tag ,"Failed to Calculate Tip:" + e.getMessage());
                e.printStackTrace();
                answerfield.setText(e.getMessage());
            }
        }
    }
    );
}

Just in case it helps heres the xml

<?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="Android Tip Calculator"/>
<EditText
    android:id="@+id/mealprice"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:autoText="true"/>
<Button
    android:id="@+id/calculate"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Calculate Tip"/>
<TextView
    android:id= "@+id/answer"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text=""/>
</LinearLayout>

© Stack Overflow or respective owner

Related posts about android

Related posts about calculator