Developing my first application for an Android calculator, I was able to update the TextView in a new action, passing the response using intent, but this requires the user to hit Back to perform another calculation. I am trying to make the doCalculation button update a simple TextView in MainActivity and get an error:
06-22 11: 08: 17.318: E / AndroidRuntime (31328): caused by: java.lang.ClassCastException: android.widget.Button cannot be passed to the android.widget.EditText file
Here is my code:
public void doCalculation(View view) {
For reference, here is the code that successfully launched the new activity:
// Called when the user clicks the Calculate! button public void doCalculation(View view) { // Do something in response to button int answerInt; String answer; Intent intent = new Intent(this, DisplayCalculationActivity.class); EditText numberOne = (EditText) findViewById(R.id.number1); EditText numberTwo = (EditText) findViewById(R.id.number2); int numberOnee = Integer.parseInt(numberOne.getText().toString()); int numberTwoo = Integer.parseInt(numberTwo.getText().toString()); answerInt = numberOnee * numberTwoo; answer = Integer.toString(answerInt); intent.putExtra(EXTRA_MESSAGE, answer); startActivity(intent); }
UPDATE, XML for reference:
<EditText android:id="@+id/number2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView3" android:layout_centerHorizontal="true" android:layout_marginTop="16dp" android:ems="10" android:inputType="number" /> <EditText android:id="@+id/number1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_centerHorizontal="true" android:ems="10" android:inputType="number" android:singleLine="true" /> <Button android:id="@+id/calculateBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/number2" android:layout_alignRight="@+id/number2" android:layout_below="@+id/number2" android:layout_marginTop="14dp" android:onClick="doCalculation" android:text="Calculate!" />
Thanks for the help, Michael
source share