diff options
-rw-r--r-- | examples/cross_calculator/android/res/layout/cross_calculator.xml | 72 | ||||
-rw-r--r-- | examples/cross_calculator/android/src/com/github/nimrod/crosscalculator/CrossCalculator.java | 54 |
2 files changed, 116 insertions, 10 deletions
diff --git a/examples/cross_calculator/android/res/layout/cross_calculator.xml b/examples/cross_calculator/android/res/layout/cross_calculator.xml new file mode 100644 index 000000000..11531334c --- /dev/null +++ b/examples/cross_calculator/android/res/layout/cross_calculator.xml @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/RelativeLayout1" + android:layout_width="fill_parent" + android:layout_height="fill_parent" + android:orientation="vertical" > + + <TextView + android:id="@+id/title" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:layout_alignParentLeft="true" + android:layout_alignParentTop="true" + android:layout_centerHorizontal="true" + android:text="Crossplatform Nimrod calculator" + android:textSize="20dip" > + + </TextView> + + <TextView + android:id="@+id/value_a" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:layout_below="@+id/title" + android:text="Value A: " > + </TextView> + + <EditText + android:id="@+id/edit_text_a" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentRight="true" + android:layout_below="@+id/title" + android:ems="10" + android:inputType="number" /> + + <TextView + android:id="@+id/value_b" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:layout_below="@+id/edit_text_a" + android:text="Value B: " > + </TextView> + + <EditText + android:id="@+id/edit_text_b" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentRight="true" + android:layout_below="@+id/edit_text_a" + android:ems="10" + android:inputType="number" /> + + <Button + android:id="@+id/add_button" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:layout_alignParentLeft="true" + android:layout_below="@+id/edit_text_b" + android:scrollbarAlwaysDrawVerticalTrack="false" + android:selectAllOnFocus="false" + android:text="Add!" + android:visibility="visible" /> + + <TextView + android:id="@+id/result_text" + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:layout_alignParentLeft="true" + android:layout_below="@+id/add_button" /> + +</RelativeLayout> diff --git a/examples/cross_calculator/android/src/com/github/nimrod/crosscalculator/CrossCalculator.java b/examples/cross_calculator/android/src/com/github/nimrod/crosscalculator/CrossCalculator.java index 22a4b9d0c..df2eed5ea 100644 --- a/examples/cross_calculator/android/src/com/github/nimrod/crosscalculator/CrossCalculator.java +++ b/examples/cross_calculator/android/src/com/github/nimrod/crosscalculator/CrossCalculator.java @@ -1,27 +1,61 @@ package com.github.nimrod.crosscalculator; import android.app.Activity; -import android.widget.TextView; import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TextView; +import android.widget.Toast; public class CrossCalculator extends Activity { + private static final String TAG = "CrossCalculator"; + private TextView result_text; + private EditText edit_text_a, edit_text_b; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setContentView(R.layout.cross_calculator); + + final Button button = (Button)findViewById(R.id.add_button); + button.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { addButtonClicked(); } }); + + result_text = (TextView)findViewById(R.id.result_text); + edit_text_a = (EditText)findViewById(R.id.edit_text_a); + edit_text_b = (EditText)findViewById(R.id.edit_text_b); + } - /* Create a TextView and set its content. - * the text is retrieved by calling a native - * function. - */ - TextView tv = new TextView(this); - final int a = 4; - final int b = 18; + /** Handles clicks on the addition button. + * Reads the values form the input fields and performs the calculation. + */ + private void addButtonClicked() + { + int a = 0, b = 0; + String errors = ""; + final String a_text = edit_text_a.getText().toString(); + final String b_text = edit_text_b.getText().toString(); + try { + a = Integer.valueOf(a_text, 10); + } catch (NumberFormatException e) { + errors += "Can't parse a value '" + a_text + "'. "; + } + try { + b = Integer.valueOf(b_text, 10); + } catch (NumberFormatException e) { + errors += "Can't parse b value '" + b_text + "'"; + } final int c = myAdd(a, b); - tv.setText("myAdd(" + a + ", " + b + ") = " + c); - setContentView(tv); + result_text.setText("myAdd(" + a + ", " + b + ") = " + c); + + if (errors.length() > 0) { + Log.e(TAG, errors); + Toast.makeText(this, errors, Toast.LENGTH_SHORT).show(); + } } /* A native method that is implemented by the |