I’m doing a test to get Android development up in Eclipse. My application crashes when the calculate button is pressed. It would appear that the problem is with the AlertDialog, but all of the examples that I’ve found have it the same way.
package mobile.ildu.AndroidTest;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
public class AndroidTestActivity extends Activity {
private EditText text1;
private EditText text2;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void myClickHandler(View view)
{
switch(view.getId())
{
case R.id.calculate:
if(text1.getText().length()==0)
{
callDialog("Error","You must enter a number in the first box");
return;
}
if(text2.getText().length()==0)
{
callDialog("Error","You must enter a number in the second box");
return;
}
float number1 = Float.parseFloat(text1.getText().toString());
float number2 = Float.parseFloat(text2.getText().toString());
float answer = number1*number2;
callDialog("Answer",number1+"*"+number2+" = "+answer);
break;
}
}
private void callDialog(String title, String message)
{
AlertDialog alertDialog= new AlertDialog.Builder(AndroidTestActivity.this).create();
alertDialog.setTitle(title);
alertDialog.setMessage(message);
alertDialog.setButton("Close", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
dialog.dismiss();
}
});
alertDialog.show();
}
}
error log:
11-22 10:41:45.092: E/AndroidRuntime(675): FATAL EXCEPTION: main
11-22 10:41:45.092: E/AndroidRuntime(675): java.lang.IllegalStateException: Could not execute method of the activity
11-22 10:41:45.092: E/AndroidRuntime(675): at android.view.View$1.onClick(View.java:3019)
11-22 10:41:45.092: E/AndroidRuntime(675): at android.view.View.performClick(View.java:3460)
11-22 10:41:45.092: E/AndroidRuntime(675): at android.view.View$PerformClick.run(View.java:13955)
11-22 10:41:45.092: E/AndroidRuntime(675): at android.os.Handler.handleCallback(Handler.java:605)
11-22 10:41:45.092: E/AndroidRuntime(675): at android.os.Handler.dispatchMessage(Handler.java:92)
11-22 10:41:45.092: E/AndroidRuntime(675): at android.os.Looper.loop(Looper.java:137)
11-22 10:41:45.092: E/AndroidRuntime(675): at android.app.ActivityThread.main(ActivityThread.java:4340)
11-22 10:41:45.092: E/AndroidRuntime(675): at java.lang.reflect.Method.invokeNative(Native Method)
11-22 10:41:45.092: E/AndroidRuntime(675): at java.lang.reflect.Method.invoke(Method.java:511)
11-22 10:41:45.092: E/AndroidRuntime(675): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-22 10:41:45.092: E/AndroidRuntime(675): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-22 10:41:45.092: E/AndroidRuntime(675): at dalvik.system.NativeStart.main(Native Method)
11-22 10:41:45.092: E/AndroidRuntime(675): Caused by: java.lang.reflect.InvocationTargetException
11-22 10:41:45.092: E/AndroidRuntime(675): at java.lang.reflect.Method.invokeNative(Native Method)
11-22 10:41:45.092: E/AndroidRuntime(675): at java.lang.reflect.Method.invoke(Method.java:511)
11-22 10:41:45.092: E/AndroidRuntime(675): at android.view.View$1.onClick(View.java:3014)
11-22 10:41:45.092: E/AndroidRuntime(675): ... 11 more
11-22 10:41:45.092: E/AndroidRuntime(675): Caused by: java.lang.NullPointerException
11-22 10:41:45.092: E/AndroidRuntime(675): at mobile.ildu.AndroidTest.AndroidTestActivity.myClickHandler(AndroidTestActivity.java:27)
11-22 10:41:45.092: E/AndroidRuntime(675): ... 14 more
Thanks for any help!
Try this: